Forum und email

Securitatea Bazelor de Date

Cuprins

In zilele noastre, bazele de date sunt componente esentiale ale aplicatiilor web, dand posibilitatea acestora de a servi continut dinamic. Datorita faptului ca informatii secrete sau cu caracter confidential se stocheaza adesea intr-o baza de date, va trebui sa luati in considerare protejarea bazelor de date.

Pentru a primi sau trimite orice informatie, trebuie sa te conectezi la baza de date, sa trimiti un query valid, sa iei rezultatele, si sa inchizi conexiunea. Recent, cel mai folosit limbaj query pentru asemenea tip de interactiune este Nowadays, the commonly used query language in this interaction is the Structured Query Language (SQL). Vezi cum un atacator poate sa manipuleze un query SQL.

Dupa cum probabil ati presupus, PHP nu va poate proteja bazele de date in sine. Urmatoarele sectiuni tind sa fie o introducere in notiunile de baza ale accesarii si manipularii bazelor de date, cu scripturi PHP.

Pastrati in minte urmatoarea regula: securitate maxima. Cu cat cresteti masurile de protectie asupra bazelor de date, cu atat mai putina este probabilitatea ca un atacator sa reuseasca sa sustraga date importante sau sa abuzeze de ele. Incercati ca structura si designul bazei de date sa fie cat mai eficient, dupa care va puteti pune problemele legate de securitate.

Designul bazelor de date

Primul pas este intotdeauna crearea bazei de date, numai in cazul in care nu doriti sa folositi alta de pe alt server. Cand o baza de date este creata, ea este desemnata unui anume utilizator, care a executat comanda de creare. In general numai proprietarul (sau superuserul) pot face orice cu obiectele din acea baza de date, iar pentru a lasa si alti utilizatori sa o foloseasca, ei trebuie sa aiba privilegii.

Aplicatiile pe care le construiti nu ar trebui sa se conecteze niciodata la o baza de date cu privilegii de administrator sau superuser, pentru ca acesti utilizatori pot executa orice fel de query, de exemplu, modificarea schemei (stergerea tabelelor) sau stergerea intregului continut.

Poti crea diferiti useri de baze de date pentru fiecare aspect al aplicatiei, cu drepturi limitate, in functie de task-urile pe care le indeplinesc. Se pot da numai privilegiile strict necesare, si evitati ca acelasi user sa interactioneze cu mai multe baze de date. Aceasta inseamna ca daca un intrus va avea privilegii la baza de date, acesta va avea privilegii limitate si nu va putea sa faca decat schimbari cu impact asupra aplicatie dumneavoastra.

Este bine sa nu implementati toate solutiile prin prisma scriptului web, in schimb incercati sa creati o schema de baza de date cat mai competitiva, din care sa extrageti simplu informatia. Daca sistemul evolueaza, noi porturi vor fi folosite pentru a manipula bazele de date, si va trebui sa reimplementati scripturile pentru fiecare baza de date in parte.