dedlfix: PHP SQL Statements

Beitrag lesen

Tach!

2. Beachte immer den Kontextwechsel. Selbst dann, wenn Du Dir sicher bist, wo die Daten herkommen (Fehler können immer mal irgendwo, insbes. zukünftig, passieren, deswegen lieber von Anfang an beachten).

Die Herkunft der Daten ist belanglos. Auch aus "sicheren Quellen" können Daten kommen, in denen Zeichen mit besonderer Bedeutung aus der Sicht eines SQL-Statements enthalten sind. Anführungszeichen sind zum Beispiel nicht nur Zeichen, mit denen SQL-Injections beabsichtigt werden. Kontextwechselbeachtung ist keine optionale Sicherheitsveranstaltung sondern eine generelle Notwendigkeit, um syntaktisch korrekte Ergebnisse zu erzielen.

4. Verwende so etwas wie PDO, damit hast Du einige der zuvor genannten Probleme bereits erschlagen.

Ja, aber nicht einfach nur so, sondern Querys mit variablen Werten als Prepared Statement schreiben. Das hat möglicherweise eine noch schlechtere Performance, weil für das vorbereitete Statement und die Ausführung mit Übertragen der Werte zwei Roundtrips zum SQL-Server notwendig sind, aber das in Kauf zu nehmen ist deutlich besser als Statements mit maskierten Werten zusammenzustückeln. "Schlechtere Peformance" heißt in dem Fall aber auch nicht, dass der Anwender eine Verzögerung wahrnimmt.

dedlfix.