SQL Injection


Securitate si iar securitate. Daca site-ul tau este facut de un programator fara experienta, atunci iti vei face multi nervi cand un pusti iti va sterge intreaga baza de date sau iti va fura parolele sau adresele de e-mail stocate…

Acum ceva timp scriam articolul secure php session in care nu faceam referire si la SQL Injection… am primit o serie de e-mail-uri de la cititori in care eram intrebat despre cum pot verifica daca site-ul lor este securizat corespunzator… le-am raspuns si acum am sa le raspund tuturor.

Un query SQL arata asa.

SELECT ceva
FROM tabel
WHERE camp = '$variabila';


Daca variabila noastra are valoarea ceva’ OR ‘x’='x atunci codul se va transforma in:

SELECT ceva
FROM tabel
WHERE camp = 'ceva' OR 'x'='x';

Astfel am trecut de pasul de verificare si ne-am autentificat intr-o zona securizata. Acest fenomen se numeste SQL Injection.

Un alt tip de SQL Injection este si inlocuirea variabilei cu x’; DROP TABLE tabel; – -.

SELECT ceva
FROM tabel
WHERE camp = 'x'; DROP TABLE tabel; --';

Acum am sters intregul tabel cu toate inregistrarile aferente.

Sa incercam sa intelegem mai bine acest fenomen… cand trimitem o variabila catre un script PHP o facem astfel:

/fisier.php?variabila=cotinut

Orice rauvoitor va putea apela urmatorul link si va trece peste masurile noastre de securitate:

/fisier.php?variabila=x'; DROP TABLE tabel; --

Cea mai buna metoda de protectie este inlocuirea caracterelor speciale cu codurile aferente HTML sau chiar stergerea acestora. Va recomand folosirea functiei mysql_real_escape_string();.

Sa vedem ce se va intampla in cazul exemplului nostru dupa ce aplicam mysql_real_escape_string() variabilei ‘ OR 1′.

mysql_real_escape_string(" ' OR 1' ");

Rezultatul final va fi:

\' OR 1\'

Observati ca apostroful este precedat de , acum nu mai pot fi introduse coduri malitioase.

So… am depasit acest prag. Sunt multe de spus despre SQL Injection dar pentru acest tutorial este de ajuns atat.

Nu uitati: considerati fiecare utilizator un posibil rauvoitor si nu faceti publica structura SQL a site-ului!

C’ya next time!



Ti-a placut articolul SQL Injection?

Ai nevoie de rezolvarea unei probleme la informatica?

Iti recomandam si urmatoarele articole:

Discuta articolul SQL Injection



Contul tau

Categorii

Mozku Network

Ne gasesti si pe Facebook

Articole noi

Fisiere populare

  • Proiect Atestat Informatica Visual FoxPro (439)
  • Twitter Patterns (202)
  • Flash Newsletter (126)
  • Baza de date auto revizuita (99)
  • hitTest Flash (99)

Marcaje articole