Securitatea Bazelor de Date
PHP Manual

Designul bazelor de date

Primul pas este întotdeauna crearea bazei de date, doar dacă nu doriți să utilizați o bază de date creată de altcineva. Când o bază de date este creată, ea este desemnată unui anume utilizator, care a executat comanda de creare. În general, numai proprietarul (sau superuserul) pot face orice cu obiectele din acea bază de date, iar pentru a lăsa și alți utilizatori să o folosească, ei trebuie să aibă privilegii.

Aplicațiile pe care le construiți nu ar trebui să se conecteze niciodată la o bază de date cu privilegii de administrator sau superuser, pentru că acești utilizatori pot executa orice fel de query, de exemplu, modificarea schemei (ștergerea tabelelor) sau ștergerea întregului conținut.

Puteți crea diferiți utilizatori de baze de date pentru fiecare aspect al aplicației, cu drepturi la obiectele bazei strict delimitate. Se pot da numai privilegiile strict necesare, și evitați ca același user să interacționeze cu mai multe baze de date. Aceasta înseamnă că dacă un intrus va căpăta acces la baza de date din numele aplicației dumneavoastră, acesta va putea face doar operațiunile, pe care le poate face aplicația dumneavoastră.

Se recomandă să nu implementați toată business-logica în aplicația web (de ex. în script-ul dumneavoastră). În loc, realizați aceasta în schema bazei de date utilizând viziuni, trigger-e sau reguli. Dacă sistemul va evolua, va apărea necesitatea de a deschide noi porturi la baza de date și va trebui să reimplementați logica separat în fiecare client al bazei de date. Or, trigger-e pot fi utilizate pentru a manipula câmpuri în mod transparent și automat, ceea ce deseori vă ajută la depistarea problemelor în aplicație, sau la regăsirea tranzacțiilor.


Securitatea Bazelor de Date
PHP Manual