dahil bir php doğrudan erişimi engellemek

4 Cevap php

Ben bir php komut dosyası PayPal eStores/dl_paycart var ama PayPal eStores "settings.php" Security Bypass Vulnerability var

Ben dosyayı eklemek bir php doğrudan erişimi engellemek eğer bilmek istiyorum.

Bu yardım eder misiniz?

defined( '_paycart' ) or die( 'Access to this directory is not permitted' );

Teşekkür ederim

4 Cevap

ŞİDDETLE bazı yeni komut bulma öneriyoruz. Engelleme herhangi bir tür, sadece barajın parmağını sokuyor; kalıcı bir çözüm değildir ve sonunda onu kırmak için gidiyor.

Eğer gerçekten kullanmak istiyorsanız, özellikle de "al, Deny Allow" ve "Hepsi Deny", htaccess dosyaları kontrol

Sorun birisi "include" kullanımı ve kod içeriğini, değişkenler ve benzeri okumak mümkün ise, onlar zaten aynı sunucuda çalışan ve biraz ham olması anlamına gelir, sen kemikli eğer onlar Sizinle vida çalışın.

Eğer uzak bir sunucudan dosyaya dışarıdan erişimi engellemek için arıyorsanız, diğer taraftan, daha sonra çağrı sadece herhangi bir dış siteye görüntülenir olacağını değerleri almak (ve soru ise, "Ben engelleyebilir miyim dahil Hatta uzaktan bu dosyayı yüklemeden harici siteler http.conf sunucu yapılandırmaları ve. htaccess dosyaları "ile)", cevap ".

Uzun ve kısa, ancak, bu bir sunucu güvenlik sorunu olduğunu, gerçekten PHP ile çözülebilecek bir şey olmadığıdır.

  1. . Script php uzantısı olduğu gerçeği, bazı koruma sunuyor - bu dosya için herhangi bir http veya https arama isteğini hizmet öncesi php çalıştırmak için gidiyor web sunucusu üzerinden gidecek.

  2. Ben kamu web dizini altında bir dizin komut hareket eden ve bu dizine ya da tüm istekleri engeller içinde. Htaccess dosyası koyarak tavsiye, ya da erişmek için bir parola gerektirir olacaktır. Genel dizinde komut dosyaları tarafından gerektiğinde daha sonra komut dosyası içerir. Bkz Apache's .htaccess Tutorial

Muhtemelen en güvenli yolu bu gibi bir şeydir

$allowed_files = array("/paths/", "/that/", "/are/", "/allowed/");
if(!in_array($_SERVER['PHP_SELF'], $allowed_files))
{
    die("Not Allowed");
}

Eğer erişim istiyorum Dosyaları ile dizi doldurun. (Siz istediğiniz her sayfa PHP kendini erişebilir ve kopyalayıp yapıştırmak zorunda kalabilirsiniz). Bu Yürütülmekte olan dosyanın izin verilen sayfalardan biri olduğundan emin olmak için kontrol edecektir. Değilse komut ölecek.

Ben $ _SERVER değiştirilmesi mümkün olabilir inanıyorum, ama muhtemelen olmayacak. Bu dosya halen fopen veya file_get_contents kullanarak kazanılmış mümkün olacak, ve birisi onu okur, onlar değiştirmek için ne bilecek.

'Tamamen' güvenli bir şey yapmak için bir yol gerçekten yoktur çünkü Ama, bu 'tamamen güvenli' değil, uyarmak istiyorum.