Tach!
ich möchte gerne ein Textarea-Feld mit einem PHP Scirpt bearbeiten. Getreu dem Motto traue keinem Input den du nicht selbst geschrieben hast, möchte ich sicher stellen, das sich kein Ausführbarer Code darin befindet.
Wenn es ein Leerstring ist, hast du garantiert keinen ausführbaren Code drin. Ansonsten müsstest du erstmal definieren, was ausführbarer Code ist.
filter_input(INPUT_POST, "message", FILTER_DEFAULT);
Das ist sinnlos, denn FILTER_DEFAULT ist FILTER_UNSAFE_RAW, und das filtert überhaupt nichts. Allgemein ist das Filtern am Eingang ziemlich sinnfrei, wenn das wegen Sicherheitsbedenken erfolgt und keine fachlichen Gründe vorliegen.
Es gibt jedoch auf der Ausgangsseite eine ganze Menge Kontexte, in die man Daten einfügen muss, und für diese ist stets individuell zu betrachten, welche Zeichen maskiert werden müssen. Es gibt da kein universelles "sicher", abgesehen vom erwähnten Leerstring.
htmlentities
htmlspecialchars() ist die bessere Funktion, wenn es darum geht, einen HTML-Kontext zu beachten.
Habt Ihr vielleicht weitere Ideen?
Ansonsten geht der Artikel Kontextwechsel auf die Problematik ein und zeigt eine Menge Kontexte und wie man mit ihnen umgehen kann.
dedlfix.