phpbar.de logo

Mailinglisten-Archive

[php] Problem mit Suchen nach extaktem Namen [NOTE]

[php] Problem mit Suchen nach extaktem Namen [NOTE]

Kai Meder php_(at)_phpcenter.de
Tue, 16 Jul 2002 20:22:19 +0200


> >$query = 'SELECT * FROM '.$entries.' WHERE cat LIKE BINARY
> >"%'.mysql_escape_string($_GET['cat']).'%" ORDER BY id DESC';
> >(mit ' um das cat)
>
> Warum mysql_escape_string, dafür gibt es doch magic_quotes_gpc oder
> liege ich da jetzt falsch. Ich bin momentan am überlegen, da ich in
> vielen PHP Skripten direkt bei z.B. Suchen $_REQUEST["Suchwort"] in
den
> Query-String eingebaut habe. Wenn ich nach "'; DROP ALL" suche, dann
> passiert aber nichts mit meiner Datenbank.
> Wie handle ich nun soetwas korrekt und sicher?

also magic_quotes_gpc ist ja nur ein automatisches addslashes auf
alle GPC-daten, die reinkommen, mehr nicht

mysql_escape_string dagegen escaped zeichen, die die query zerstören
oder mit fiesen sql-kommentar-zeichen verändern können ..
und das sind weit mehr zeichen als der backslash ...

mach einfach bei jeder variable, die du nicht explizit validiert hast,
ein mysql_escape_string, damit ist aber auch nur das *gröbste* erledigt
...
um eine ausführliche validierung kommst du eigentlich nicht drumherum,
meistens reicht ja schon ein $param = (int)$_GET['param'];
damit du auch wirklich einen integer erhälst ...

kai


php::bar PHP Wiki   -   Listenarchive