Vlákno názorů k článku PHP pro experty: bezpečnost od Michal Aichinger - hmm tak odstavec "Vkládání SQL kódu" je hodne...

  • Článek je starý, nové názory již nelze přidávat.
  • 26. 8. 2004 22:07

    Michal Aichinger (neregistrovaný)

    hmm tak odstavec "Vkládání SQL kódu" je hodne usmevny, protoze Mysql_query neumi vykonat vice SQL prikazu oddelenych strednikem :-) rekl bych ze to plati i pro funkce pro ostatni DB, takze autor zaspal asi dobu :-)

    Aichi

  • 1. 9. 2004 22:21

    onovy (neregistrovaný)

    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