Hallo liebe Leute,
folgendes Szenario:
Ich will einen variablen String (vom Benutzer eingegeben also potentiell böse, gell?) als Standarttext in einer Textarea ausgeben lassen. Ungefähr so:
PHP-Code:
echo '<textarea name="text" cols="50" rows="10">' . $pre . '</textarea>';
Sollte man ja so nicht machen wegen XSS-Angriffen, oder?
Also lieber so:
PHP-Code:
echo '<textarea name="text" cols="50" rows="10">' .htmlentities($pre, ENT_QUOTES) . '</textarea>';
Dabei habe ich das Problem, dass das Formular zwar zunächst richtig ausgegeben wird, dass beim Absenden aber die Notierungen der HTML-Sonderzeichen übermittelt werden; klar: denn die habe ich ja selbst in das Formular reinschreiben lassen.
Nun will ich diese Notierung als Sonderzeichen aber aus dem Grund nicht in der Datenbank haben, weil ich es zulassen will, dass solche Sonderzeichen eingegeben werden können (absichtlich und nicht durch den oben genannten Fehler) ohne dass sie eine Änderung der Formatierung bewirken. D.h. ich will den Text aus der Datenbank prinzipiell (auch wenn er nicht in einem Formular steht) per htmlentities ausgeben lassen.
Wo stehe ich auf dem Schlauch?
Danke schon mal
Christoph