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).