2012-11-17 31 views
8

Benim üniversite onlara genelinde yansıtılmış aynı verilere sahip birden çok sunucusu, bu yüzden mesela şeydirdevre dışı bırakılması indir

foo.uni.edu/file.php 
bar.uni.edu/file.php 

için erişebilir Böylece, PHP'yi yüklememiş bir sunucu üzerinden bağlantı kurarsa, php dosyalarını herkes indirebilir. Bunu önlemek için muhtemelen .htaccess ile bir yolu var mı? İçeride olduğu gibi, PHP sunucusu kurulu ise sadece PHP dosyalarını açmaya izin verir misiniz?

+1

'' işlevini kullanabilirsiniz. – mario

+0

neden tek bir (yük dengeleme) sunucusuna erişimi kısıtlamıyor? – Kubee

cevap

1

Belge kökünün dışındaki dosyaları depolamak mümkünsa, tüm hassas verileri docroot'un dışında saklayarak sorunu giderebilirsiniz. Ardından, bu dosyalara erişmek için herkese açık komut dosyalarınızı include kullanın. Eğer /username/public_html yükleyebilir ve public_html Belgeniz kök ise

Yani, (örneğin foo.uni.edu/file.php/username/public_html/file.php ise), o zaman bunun yerine /username/file.php yüklemek ve sadece include('../file.php');

Bu gibi bir şey içeren /username/public_html başka senaryo koyardınız Her durumda iyi bir uygulamadır, sunucuda bir yapılandırma hatası PHP'nin ayrıştırılmasını durduracaktır.

Ayrıca mod_php etkin değilse PHP dosyaları erişimini engellemek için IfModule ve FilesMatch kullanarak deneyebilirsiniz:

<IfModule !mod_php.c> 
    <FilesMatch "\.php$"> 
     Order Deny,Allow 
     Deny from All 
    </FilesMatch> 
</IfModule> 

bu işe yaramazsa, bunun yerine !mod_php5.c deneyin.

+0

Modlardan her ikisi de bir php dosyasına erişmeye çalışırken izin reddedildi hatası verir (php yüklü olan sunucuda) – vascoFG

+0

Sunucular arka arkaya PHP4 yüklemesi çalıştırıyor mu? Eğer öyleyse, '! Mod_php4.c' deneyin. Eğer bu işe yaramıyorsa, korkarım güldüm. – Kelvin

İlgili konular