dedlfix: SQL-Injection

Beitrag lesen

echo $begrüßung;

-Alle Daten, die ich in einer Datenbank ablegen möchte, sollte ich mit mysql_real_escape_string() maskieren.
-Damit es nicht zu "doppelter Maskierung" kommt, wende ich vorher stripslashes() an. (für den Fall, dass magic_quotes_gpc ON ist)

Die Magic-Quotes stören nicht nur beim Eintragen in eine Datenbank, sondern auch an einigen anderen Stellen, beispielsweise wenn sie zwecks Fehlerkorrektur oder anderweitiger Ausgabe auf einer Webseite landen sollen oder in einer E-Mail. Es ist ungünstig, für all diese Anwendungsfälle die magic_quotes_gpc()-Prüfung und Entslashung einzeln durchzuführen. Stattdessen ist es günstiger die Eingabedaten generell und einmalig am Scriptanfang von den Magic Quotes zu befreien. Du hast es dann auch beim Umstieg auf PHP6 einfacher, denn da gibt es das Feature nicht mehr und dein Quelltext muss nur an einer Stelle bearbeitet werden statt an vielen. Ein Beispiel für eine zentrale Funktion gibts im Handbuch-Kapitel Disabling Magic Quotes

echo "$verabschiedung $name";