dedlfix: Slashes im Formular

Beitrag lesen

echo $begrüßung;

mich hätte ja mal interessiert in welchem Moment was dafür sorgt, dass die Anführungszeichen maskiert werden. Aber egal.

Wenn du die dir gegebenen Hinweise beachtetest und das Kapitel zu den Magic Quotes gelesen hättest, wüsstest du, dass dieses Feature dafür verantwortlich ist. Du hast hier wieder einen der Fälle, in dem Magic Quotes nur Scherereien bereiten. Aber egal.

Es geht eigentlich nur um eine Lösung für diesen konkrten Fall und ich habe es nun ganz einfach dadurch gelöst (wenn es mir
nicht an anderer Stelle einen Strick dreht), dass die Daten aus Post mit htmlentities() maskiere, bevor ich sie in die Session schreibe.

Was Unfug ist. Zum einen bleibt die Magic-Quotes-Problematik, zum anderen ist es imemr sinnvoll, Werte beim Übergang in einen anderen Kontext diesem gemäß zu behandeln und nicht einfach irgendwann vorher. Eine Session ist kein HTML-Kontext.

PHP missachtet dieses Prinzip mit seinen Feature Magic Quotes. Es behandelt Eingabewerte für den Kontext SQL-String, unabhängig davon ob die Werte je in diesen Kontext gebracht werden.

Als Lösungsvorschlag: Schalte das Feature Magic Quotes aus oder mach seine Auswirkungen rückgängig. Für beides findest du Vorgehensweise im bereits verlinkten Handbuchkapitel. Und dann informiere dich über kontextgerechtes Behandeln von Werten. Das ist ein hier sehr oft vorkommendes Thema, weil es immer wieder unbeachtet gelassen wird. Das Resultat dieser Unachtsamkeit hört auf Namen wie SQL-Injection oder Cross-Site-Scripting und sie steht nicht zu Unrecht auf vordersten Plätzen in der Liste der Top-25-Programmierfehler.

echo "$verabschiedung $name";