dedlfix: Verständnisfrage zu magic_quotes_gpc und Datenbankkommunikation

Beitrag lesen

Hi!

Das andere wurde ja schon beantwortet, hier der Rest.

Laut phpinfo() und get_magic_quotes_gpc()ist auf dem Webserver magic_quotes_gpc aktiviert. Alle anderen magic_quotes Einstellungen sind deaktiviert.

Das Feature ist schon lange auf der Abschussliste, da es an der falschen Stelle agiert und nur dann einigermaßen sinnvoll ist, wenn die Daten ohne weitere Verarbeitungen den Weg in ein SQL-Statement finden. Für alle anderen Anwendungen sind die zusätzlichen Zeichen eher konktraproduktiv. Da du dich jetzt selbst um sichere Programmierung kümmerst, deaktiviere es am besten generell, oder mach seine Auswirkungen einmalig am Scriptanfang rückgängig (Disabling Magic Quotes). Dann kannst du den dafür eingefügten Code einfach entfernen, wenn das Feature generell abgeschaltet worden ist.

In div. Tutorials kann man nun lesen, dass wenn magic_quotes_gpc aktiviert ist, vor der Verwendung von mysql_real_escape_string(), stripslashes() anzuwenden ist. Angeblich werden die Daten sonst doppelt maskiert.

Generell gesehen ja. Allerdings sollte man es nicht direkt vor der Verwendung von mysql_real_escape_string() bereinigen, sondern gleich die Eingangsdaten putzen, damit sie in besser verarbeitbarer Rohform vorliegen.

Nur bei mir kann ich da keinen Unterschied feststellen. Ob ich nun vorher stripslashes() anwende oder nicht. Bei mir sieht das Ergebnis immer gleich aus.

Dann machst du was falsch. Schau dir die Daten (am besten mit var_dump()) an, im Zweifelsfall in der Quellcode-Ansicht des Browsers. Und das am besten vor und nach jedem Verarbeitungsschritt.

Spielen da event. noch andere Einstellungen mit, kann ich das stripslashes() weglassen oder verstehe ich etwas falsch?

Für die Magic Quotes in GET/POST/COOKIE ist nur magic_quotes_gpc zuständig.

Lo!