Pokud me je zname tak sql injection se dela takto:
mysql_query("DELETE FROM xxx WHERE id=$id"); // tady neni promena id v uvozovkach takze se da:
script.php?id=0 OR 0=0
a ten OR se postara o to ze to smaze vse
reseni je nekolik a to
1. mysql_query('DELTE FROM xxx WHERE id='.intval(id)); /// toto se mi zda efektivnejsi, protoze MySQL pak NIKDY nerve kdyz WHERuju promenou typu int s stringem.
2. gpc_magick_quotes=on a mysql_query("DELETE FROM xxx WHERE id=\"$id\"");
3. ci rucni escapovani
osobne na to pouzivam funkci pri nacitani vstupnich dat a vypinam ini_setem nebo .htaccessem register_globals, pak mam jistotu ze me nikdo nezmeni nic co nechci.
function input_num($var) {
if (!is_numeric($_REQUEST[$var])) {
die('Vstupni promena $var musi byt cislo!');
}
return $_REQUEST[$var];
}
$a=input_num('a');
stejne funkce mam treba i na checkboxy, a tim se mi automaticky overi i jestli se nekdo nepokousi podstrcit blby data