Paylaşımlı hosting sistemlerinde bir hosting kullanıcısı kendisine ait olmayan aynı makinadaki komşu kullanıcısına ait bilgilere erişebilir...
Safe_mod OFF olması özellikle güvenlik noktasında çok büyük problemlere neden olabilmektedir. Tehlikenin ne olduğunu ufak bir kod ile anlatayım istersen:
Bu scripti safe_mode ve open_basedir kısıtlamaları olmayan bir sunucuda çalıştırdığınızda, sunucunun “/etc/passwd” dosyasını okuyabilirsiniz.
<?
$myfile = fopen ('/etc/passwd', 'r') or die ("Dosyayi acamiyorum!");
while (!feof($myfile)){
$line = fgets($myfile,5000);
print "$line
"; }
fclose($myfile);
?>Php safe_mode, basitçe bu tip sorunların önüne geçmeye çalışan bir mekanizmadır. Php scriptlerinin, kendisini çalıştıran kullanıcıdan farklı bir kullanıcıya ait olan dosyalara erişimini kısıtlamakta kullanılır işte Safe_mode.
Yeni gelmişken Safe_mode ile benzer bir amaca hizmet eden bir başka php mekanizma ise open_basedir dir. Bu direktif ise php derleyicisine, scripti çalıştıran kulanıcının ev dizini haricindeki dosyalara erişmemesini sağlar.
Bu iki direktifin aktif olması (ON konumunda olması) , paylaşımı sunuculardaki bir çok güvenlik problemini, gidermektedir.
Tabi php’nin, php.ini dosyalarını çalışma esnasında değiştirebildiği “ini_set” gibi fonksiyonlarını kapatmazsak, bu değişkenler, scriptin kendisi tarafından değiştirilebilir, devredışı bırakılabilir.
Cgi desteği olan bir sunucuda, python, perl, bash gibi scriptin dilleri ile aynı işlemler rahatça yapılabilir. Bu programlama dillerinde, php.ini mantığı olmadığı için, bir seçenek haricinde yapılacak şey yok. Cgi desteğini kapamak en güvenilir yoldur.