Protejeaza-te impotriva atacurilor de tip SQL injection

Configurare noua (How To)

Situatie

Atacurile de tip SQL injection se produc prin inserarea de linii de cod rau-intentionate in vederea executiei ulterioare de catre baza de date vizata. Aceste atacuri exploateaza, de exemplu,  vulnerabilitatea aplicatiilor SQL pe web – formulare completate online – care urmaresc colectarea/stergerea informatiilor din bazele de date sau blocarea accesului utilizatorilor legitimi, cu drepturi de acces (fenomen cunoscut ca Denial-of-Service sau DoS) .

Solutie

Lucrul care permite injectarea de cod SQL este acceptarea de date de intrare (input) nefiltrate in nici un fel.

Unde este posibil, putem programa aplicatia SQL sa ignore caracterele speciale          ( ‘ ” ; — ) din datele inserate de useri. In acest caz eliminam posibilitatea uzului indreptatit al acestor caractere, deci trebuie gandit bine daca impactul acestei reguli este acceptabil.

Solutia cel mai des adoptata este neconcatenarea datelor introduse cu codul aplicatiei  SQL. Exemplu din Perl:

my $user_input = ‘something the user entered’;
my $sth = $dbh->prepare(‘select email from users where email = ?’);
$sth->bind_param(1, $user_input);
$sth->execute;

Inlocuim ultimele doua declaratii cu:

         $sth->execute($user_input);       si astfel evitam concatenarea.

 

 

Tip solutie

Permanent

Voteaza

(30 din 51 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?