Moin,
Was meinst du, warum Tom ausgerechnet die dafür geeignete Funktion htmlspecialchars() verlinkt hat? Die codiert genau die Zeichen um, für die das in HTML notwendig ist, also '<', '>', '&' und '"', und lässt andere Zeichen in Ruhe.
Ich verwende weder Javascript noch andere Scriptsprachen.
das ist okay, tut aber nichts zur Sache.
Benutzereingaben werden strengstens geprüft.
Sollte auch selbstverständlich sein, hat aber auch nichts mit der Frage zu tun.
Wie soll dann noch Schadcode (bei Nichtcodierung obiger Sonderzeichen) eingeschleust werden?
Wer spricht von Schadcode? Okay, im weitesten Sinn mag der Ausdruck sogar passen. Aber hier geht's um grundlegende Prinzipien: Wenn Daten von einem Kontext (hier: String in PHP) in einen anderen übergehen (hier: HTML), dann müssen die Regeln des Zielkontexts beachtet werden. Und das bedeutet in HTML beispielsweise, dass die oben genannten Zeichen nicht unmaskiert stehen dürfen, wenn sie als normaler Text gelten sollen.
Vielleicht ist dir gar nicht klar, wie trivial solche Problemkandidaten aussehen können: So wird etwa der String "paste©" ebenso für Überraschungen sorgen wie "Wir haben festgestellt, dass immer r<1.25 gilt", wenn kein geeignetes Escaping verwendet wird. Dagegen kann mit "übles Ölkännchen" nichts passieren - sofern die Zeichencodierung passt.
Wie gesagt, das ist kein "Sonderfall", den man "eventuell" oder "in komlexen Fällen" beachten muss - das ist Grundlage, das sollte einem so in Fleisch und Blut übergehen, dass man es instinktiv tut.
Ciao,
Martin
F: Was sagt die kleine Kerze zur großen Kerze?
A: Ich gehe heute nacht aus!
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(