Forum und email

Instalat ca modul Apache

Cand PHP este utilizat ca modul in Apache, el mosteneste permisiile default Apache (de obicei acelea ale utilizatorului "nobody"). Acest fapt are mai multe impacte asupra securitatii sistemului. De exemplu, daca folositi PHP pentru a accesa o baza de date, si aceasta nu are management de acces inclus, va trebui sa faceti in asa fel incat aceasta sa fie accesibila utilizatorului "nobody". Aceasta inseamna ca oricine cu drepturi default "nobody" poate actiona si modifica baza de date, fara sa fie nevoit sa introduca username sau parola. Este posibil ca un robot de indexare web sa acceseze accidental panoul de administrare al bazei de date (ex. phpMyAdmin) si sa modifice sau sa stearga toate datele. Va puteti proteja cu ajutorul sistemului de autorizatie folosit de Apache, sau printr-un model de acces personalizat folosind LDAP, fisiere tip .htaccess , etc. pe care sa le introduceti in scripturile PHP create.

Adesea, dupa ce politica de securitate a fost stabilita, iar utilizatorul PHP (in acest caz, utilizatorul Apache) prezinta risc redus fata de sistem, iese la iveala faptul ca PHP este restrictionat in a scrie in fisierele si directoarele utilizatorilor, sau nu poate accesa si schimba anumite baze de date. De asemenea, a fost securizat asemanator in a scrie fisiere bune si rele, sau inserarea de tranzactii benefice sau daunatoare bazelor de date.

O greseala de securitate frecventa este ca atunci cand se ajunge in acest moment, sa se dea pemisii de root serverului Apache, sau sa se escaladeze voit privilegiile din acesta, pentru a facilita anumite actiuni.

Escaladarea privilegiilor utilizatorilor Apache catre root este deosebit de periculoasa si poate duce la compromiterea intregului sistem, asa ca sudo'ing, chroot'ing, sau alte modalitati de a rula root nu ar trebui luate in considerare de catre administratorii de sistem.

Exista si solutii mai simple. Utilizand open_basedir puteti controla si restrictiona ce directorii doriti, in care poate avea acces PHP. In plus puteti seta zone apache-only, pentru a restrictiona toate activitatile non-user, sau non-system, fisiere venite via web.