dedlfix: XSS-Lücke

Beitrag lesen

echo $begrüßung;

Der Kontextwechsler hat ja schon geantwortet, dem ich nicht mehr allzuviel hinzufügen kann.

Es ist das "kleinere Übel", solche Kontextwechsel zu beachten und die Daten generell dem Ausgabemedium anzupassen, als ständig im Hinterkopf behalten zu müssen, dass man bestimmte Zeichen nicht verwenden darf. Was ist, wenn eines Tages in deinem Preislistenbeispiel ein Produkt hinzukommt, das <, > & oder " in seinem Namen trägt. Du weißt vielleicht, dass das "böse" Zeichen sind. Erinnerst du dich bei der Eingabe daran? Erkennst du diese Zeichen auch, wenn du mit Copy & Paste Texte aus fremden Listen übernimmst? Denkst du daran, einem Nachfolger/einer Aushilfskraft beizubringen, dass diese Zeichen gefährlich sind? Kannst du ausschließen, dass die Datenbank nicht anderweitig kompromittiert werden kann? Kontrollierst du deine Daten ständig auf solche Kompromittierungen? Wie du sehen kannst, ist "htmlspecialchars()" deutlich kürzer als meine unvollständige Liste der zu bedenkenden Punkte. :-)

Das Schwierige ist nur für den Einsteiger, solche Kontextwechsel zu erkennen und zu beachten. Wer weiß schon, dass Daten in einer URL URL-kodiert werden müssen, und anschließend auch noch mal HTML-gerecht behandelt werden müssen, wenn diese URL im HTML-Code erscheinen soll? Und neben diesen selbst zu beachtenden Dingen kommen dann auch noch Fehler z.B. in Brwosern hinzu, die einem zusätzliche Lücken aufreißen können.

echo "$verabschiedung $name";