Sven Rautenberg: Perl Newbie Fragen

Beitrag lesen

Moin!

$query = $dbh->prepare("INSERT INTO foo (a, b) VALUES (?, ?)");
$query->execute($foo, $bar) || die $query->errstr;


> >   
> > Prepared Statements sichern 100% gegen SQL-Injection ab, wenn man sie korrekt anwendet.  
>   
> Wie sähe denn eine nicht korrekte Anwendung aus?  
  
Ich kann mir tausend Methoden vorstellen, die allesamt auf genau ein zentrales Fail hinauslaufen: Dynamische Generierung des mit "Prepared Statements" abzusichernden Querystrings ohne korrekte Beachtung der SQL-Syntax bzw. deren Escaping-Regeln für Dinge, die eben nicht "Daten" sind.  
  
Beispielsweise kriegst du die Liste der Felder ja nicht per Prepared Statement dynamisch zusammengesetzt.  
  
 - Sven Rautenberg