Názor k článku PHP okénko: Escapování od Marián Černý - Co je az take nezrale na magic_quotes_gpc? Chapem,...

  • Článek je starý, nové názory již nelze přidávat.
  • 18. 4. 2005 3:14

    Marián Černý (neregistrovaný)
    Co je az take nezrale na magic_quotes_gpc? Chapem, ze register_globals je riadna sprostost, ale "magic_quotes_gpc on" v default konfiguracii je IMHO velmi dobra vec. Je mnozstvo ludi, ktory pisu PHP a vobec uvazovat o bezpecnosti svojho diela ich ani nenapadne. Potom staci niekde najst odkaz typu:

    <a href="?zmaz_id=13">Zrusit ucet</a>

    a ked je tento implementovany priblizne takto:

    mysql_query ("DELETE FROM ucty WHERE id = '{$_GET['zmaz_id']}'");

    tak staci ako zmaz_id zadat \"13\' OR 1 OR \'a\' = \'\" a razom zmazeme celu tabulku. Samozrejme takto je to nespravne, spravne by to malo vyzerat takto:

    $id_escaped = addslashes ($_GET['zmaz_id']);
    mysql_query ("DELETE FROM ucty WHERE id = '$id_escaped'");

    alebo dokonca pre pripad, ze by programator este nieco prehliadol (pri zlozitejsich dotazoch):

    $id_escaped = addslashes ($_GET['zmaz_id']);
    mysql_query ("DELETE FROM ucty WHERE id = '$id_escaped' LIMIT 1");

    Lenze toto by asi nerobil skoro ziaden zaciatonik a mierne pokrocily programator v PHP.

    Samozrejme, tomu komu to vadi, ten si moze nastavit HTTP server tak, aby bolo magic_quotes_gpc default off. Pripadne sa to da prenastavit aj pre jednotlive stranky (teda aspon si to myslim, neskusal som to).