EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ PHP ]

"PHP scriptlerinde dosya/dizin güvenliği" - Huzeyfe Önal - (2004-08-20 12:08:27)   [6298]

Hosting hizmeti verdiğiniz makinede birden çok müşteri hesabı var ve bu müşterilerinize PHP kullanma izni vermişseniz aynı zamanda büyük bir risk almış demeksinizdir. Bu risk ne olabilir, mesela müşterilerinizden biri bir php scripti yazarak sisteminizde dolaşabilir, başka müşterilere ait dosyaları inceleyebilir onlari kendi PC sine indirebilir vs.

Örnek,
kullanıcı şu şekil bir php dosyası yazmış olsun

---il.php---
readfile("/etc/passwd");

?>
---il.php---

browserindan http://xxx.yyy/il.php yazdığında /etc/passwd dosyasının içeriğini görebilir. Bundan sonrası kullanıcını zekasına ve fantazi yeteneğine kalmış, isterse sisteminizi bir browser araciliği ile gezebilir!

Bunu engellemek için PHP de safe_mod kavramı geliştirilmiştir, bu değeri php.ini dosyasından değiştirebilirsiniz. Peki safe_mode bize ne sağlar ?

Safe mod bize çalıştırılan PHP scriptinin sistem üzerindeki diğer dosyalara erişimini kontrol etme yetkisi verir, mesela biraz önceki örneğe dönecek olursak il.php scriptinin sahibi huzeyfe kullanıcısıdır.

-rw-r--r-- 1 huzeyfe huzeyfe 39 May 1 11:20 il.php

/etc/passwd nin sahibi ise root kullanıcısıdır
-rw-r--r-- 1 root root 2702 Jul 19 10:59 /etc/passwd

bu durumda safe_mode =On yaparsak il.php çalıştırıldığında PHP motoru il.php scriptinin UID ile işlem yapmaya çalıştığı dosyanın(/etc/passwd) dosyasının UID ini karşılaştırır, aynı ise açmasına izin verir farklı ise izin vermez ve şu uyarıyı döndürür


Warning: SAFE MODE Restriction in effect. The script whose uid is 10987 is not
allowed to access /etc/passwd owned by uid 0 in /home/users/ceviz.net/il.php on line 2

**Varsayılan durumda bu değer Off dur ve bu durumda php scriptlerinin dosyalara erişiminde herhangi bir ksısıtlama yoktur.


Arkadaşıma gönder , Ana Sayfa