 |
www.turkiyespot.com web sayfası kontrol panelleleri yardımlaşma forumları ucuz hosting domain kontrol panelleri yardımlaşma forumları
|
Önceki başlık :: Sonraki başlık |
Yazar |
Mesaj |
turkiyespot Site Admin
Kayıt: 11 Ksm 2005 Mesajlar: 320 Konum: istanbul
|
Tarih: Pzr Nis 22, 2007 5:14 am Mesaj konusu: Paylaşımlı Sunucularda Php fonksiyonlarının kısıtlanması |
|
|
Öntanimli ayarlarina baktiginizda malesef ki php paylasimli sunucularda güvenli olmayan bazi özellikleri açik olarak gelir. Yerine göre bunun bir açık olmadığını aslında paylaşımlı sunucularda problem olacağınıda söyleyebiliriz. Bazi yollarla bu güvenli olmayan özelliklerin önüne geçebilirsiniz. php.ini de bazi ayarlar yaparak daha sonra başınızı ağrıtacak durumlardan kurtulabilirsiniz.
Bu dökümanla php de güvenlik dolayisi ile kapatilmasi gerekilen bazi paremetrelerin nasil kapatilacagi irdenelenecek.
Sisteminizde yazmis oldugunuz bazi php kodlari bu komutlari kullaniyor olabilir. Herhangi bir sorun çiktiginda geri adim atmanizi öneriyorum. Basit bir sekilde yaptiginiz ayarlari geri alabilirsiniz
Hepsinden önce php.ini dosyanizin nerde oldugunu tesbit etmeniz gerekiyor. Bu dosyanin bulundugu klasör dagitimdan dagitima farkedecektir. Bundan dolayi locate komutu ile yerini belirleyebiliriz. Bir çok sistem için bu /etc klasörüdür. locate php.ini
Paylasimli sunucularda plesk kullana sunucularda ben genelde php.ini dosyasini /etc/php.ini dizini cPanel kullanan sistemlerde ise /usr/local/lib/php.ini olarak karsilastim. Kendi debian + Plesk 7.5.4 yüklü sunucumda bu /etc/apache2/php4/php.ini şeklinde idi.
Dosyanin yerini tesbit ettikten sonra bu buldugunuz dosyayi düzenlemeniz gerekmektedir. Bu düzenleme islemini gerçeklestirmek için herhangi bir text editörü kullanabilirsiniz. Ben genelde Midnight Commander kullaniyorum.(mc -e /etc/php.ini) Genel olarak kullanilan pico editörünü kullandiginizi düsünürsek. Sekildeki gibi bir komutla düzenleme moduna geçebilirsiniz. pico -w /etc/php.ini
cPanel olan bir sistemde dogal olarak bu komut
pico -w /usr/local/lib/php.ini
Debian için ise; pico -w /etc/apache2/php4/php.ini
seklinde olacaktir. Dosya içinde gezindiginizde “disabled_functions” seklinde bir satir bulmaniz gerekiyor.Temel olarak bir güvenlik için bu satirin su sekilde olmasi gerekir. disable_functions = “system,exec”
Buraya yasaklamak istediginiz php komutlarini sira ile virgülle ayrilmis sekilde yazabilirsiniz. Mesela ücretsiz php çalistirabilinecek alani saglayan bir firma iseniz. Kisilerin spam mail gönderimini önlemek için mail fonksiyonunuda kakatabilirsiniz.
System ve exec komutlari apache nin tanimli user inin erisebilecegi her yere php dosyasinin linux tabanli komut çalistirarak erisebilmesini saglamaktadir. En genel anlamda kullanicilar tarafindan kötü niyetli kullanilabilecek yasaklamanizin önerildigi komutlar su sekildedir;
Kötü niyetli kişilerin ne yapacağı konusunda şöyle bir örnek verebilirim size. Mesela sisteminizde bulunan sanal hostları listeledikten sonra onlarn içeriğini okuyup. Hatta okumakla kalmayıp bunları tarlayıp. Sunucunuzda bulunan kendi hostuma kaydettikten sonra kolay bir şekilde bunları başka bir sunucuya yada kendi bilgisayarıma kaydedebilirim. Bunu yapmam zaten sunucunuzda ne kadar site varsa dosyalarına sahip olmam anlamına gelir. İkinci aşamada ise apache nin yazma yetkisi ile erişebildiği herhangi bir yere echo “index için yazı”> /bilmem/nerdeki/host/index.html
gibi bir komutla halk arasında index atma olarak nitelendirilen ve sizi cümle aleme rezil edecek bir işlem gerçekleştirebilirim.
İşte bu gibi durumlara maruz kalmamak için paylaşımlı bir sunucuda önerilen yasaklı komut listesinin aşağıdaki gibi olmasıdır. disable_functions = "exec,system,passthru,readfile,shell_exec,escapeshellarg,escapeshellcmd,
proc_close,proc_open,ini_alter,dl,popen,parse_ini_file,show_source,curl_exec”
php.ini dosyasi düzenlendikten sonra yapmaniz gereken tek islem apache yi tekrar baslatmak. rhel, fedora, redhat ta service httpd restart
Komutunu kullanabilirsiniz bunun için. Bu komut hata verdiginde ise init den servisi manuel olarak elle tekrar baslatabilirsiniz. Bunun için :
/etc/inid.d/apache restart
yada
/etc/inid.d/httpd restart
Suse yada debianda ise; /etc/inid.d/apache2 restart
seklinde komut çalistirarak bu islemi tamamlamaniz gerekir. init.d içerisinde yer alan betik apache httpd ya da apache2 seklinde yer alabilir. burdaki dosyalari listelemek sureti ile çalistirmaniz gereken komutu tesbit edebilirsiniz.
Bu islemi gerçeklestirdikten sonra artik php dosyalari ile bu komutlar çalistirilamayacaktir. kontrol için mesela
system("ls",$a);
echo $a;
?>
seklinde php dosyasi olusturabilirsiniz.Eger islemler i dogru gerçeklestirdiyseniz. Bu komutun güvenlik nedeni ile yasaklandigini söyleyen bir hata mesaji ile karsilasirsiniz. Warning: ystem() has been disabled for security reasons in /var/www/vhosts/domain.com/a.php on line 2
Bu hata mesajını alıyorsanız işlemi başarı ile gerçekleştirdiniz demektir. |
|
Başa dön |
|
 |
www.turkiyespot.com ucuz hosting www.turkiyespot.com ucuz hosting

|
Tarih: Pzr Nis 22, 2007 5:14 am Mesaj konusu: Advertisement Links |
|
|
 www.turkiyespot.com iyi Hosting vps
vds radyo iyi reseller, kaliteli hosting, kaliteli host, kaliteli vps, iyi vps |
|
Başa dön |
|
 |
|
|
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız
|
Powered by phpBB © 2001, 2005 phpBB Group Türkçe Çeviri: phpBB Turkey & Erdem Çorapçıoğlu
|