Bademeister: Kontext-gerechtes Verarbeiten von user-submitted data

Beitrag lesen

Hi Felix.

  

> > $get_safe = $_GET;  
> > $post_safe = $_POST;  
> > $cookie_safe = $_COOKIE;  
> > if (!get_magic_quotes_gpc()) {  
> >     // Rückwärtsstriche in Browservariablen einfügen  
> >     foreach ($_GET as $key => $value) {  
> >         $get_safe[$key] = addslashes($value);  
> >     }  
> >     foreach ($_POST as $key => $value) {  
> >         $post_safe[$key] = addslashes($value);  
> >     }  
> >     foreach ($_COOKIE as $key => $value) {  
> >         $cookie_safe[$key] = addslashes($value);  
> >     }  
> > }  

In PHP gibt es (noch, in PHP6 wird es nicht mehr existieren) die "magic quotes"-Geschichte, die einfache und doppelte Anführungszeichen mit Backslashes unschädlich zu machen sucht, damit eben SQL-Injektionen nicht greifen. In Deinem Code-Beispiel wird aber genau diese "Sicherheitsmaßnahme" wieder ausgehebelt, indem die Originaleingaben des Users wieder hergestellt werden. Und schon wieder wird verschleiert: $get_safe suggeriert, dass die Werte nun "sicher" sind, dabei sind sie ja gerade _ent-_sichert worden!

???

Hier werden Slashes hinzugefügt(!), falls die magic quotes (für GPC) deaktiviert sind.

Viele Grüße,
der Bademeister