Salut
Nu ma pricep la SQL Injection sau alt gen de "atacuri" web, fiindca nu m-au interesat.
Ca regula, sterg posibile tag-uri ce pot fi trimise prin URL ($_GET) si formular ($_POST), folosind codul:
Cod: Selectaţi tot
$_GET = array_map("strip_tags", $_GET);
$_POST = array_map("strip_tags", $_POST);
Iar in lucru cu baze de date, folosesc PDO cu prepare() , execute() , care filtreaza automat datele inainte de a fi trimise la serverul bazei de date, sau aplic fnctia
mysql_real_escape_string().
Prin filtrare se intelege in special curatirea sau adaugarea caracterului "\" la ghilimele sau simboluri (precum %) care pot adauga instructiuni in sirul SQL.
De exemplu, daca ai Selectul acesta:
Cod: Selectaţi tot
$int=mysql_query("SELECT * FROM users WHERE user='".$_POST['username']."' AND password='".$_POST['password']."'");
Dacă utilizatorul poate sa introduca acest sir la password:
"' OR ''='" , query-ul va fi:
Cod: Selectaţi tot
SELECT * FROM users WHERE user='nume' AND password='' OR ''=''
ceea ce va face logarea indiferent de user.
Mai multe detalii despre SQL Injection si metode de securizare gasesti la aeste pagini:
Atacurile SQL INJECTION si
Vulnerabilitati Web si securizarea acestora, sau pe net daca faci cautre dupa: "
protectie SQL Injection".