PHP Safe Mode era o setare care o puneam mai demult pe ON.
Se pare că de la un timp uitasem de ea. Azi m-am lovit din nou de ea
Se dă situația următoare:
Un mediu de hosting în care avem utilizatorul X și utilizatorul Y. Utilizatorul X are un CMS care se conectează la MySQL și are setările în /home/X/public_html/config.php.
Utilizatorul Y este un băiat deștept, care vede că X folosește un CMS și știe unde are acel CMS setările de bază de date. Își face pe contul lui un fișier PHP în care pune:
< ?php
file_get_contents("/home/X/public_html/config.php");
?>Scriptul la execuție îi va da tot conținutul fișierul config.php, inclusiv parola de conectare la MySQL. Cum într-un mediu de hosting parola de MySQL este aceeași ca și la userul de sistem, întregul sistem e astfel compromis.
Soluția? În php.ini:
safe_mode = on
Setarea face ca scriptul PHP care are UID-ul lui Y, acesta să nu poată vedea fișierele lui X.