Der Martin: Eigene kleine Funktion "Trefforte"auslesen

Beitrag lesen

Hi,

Nicht nur die, sondern ALLE Ausgaben. Auch die, die aus anderen Quellen kommen. Denn wie Matthias gezeigt hat, genügt es ja schon, wenn in der Ausgabe ein unmaskiertes '<' auftritt - schon ist der HTML-Parser des Browsers aufs Glatteis geführt und die Ausgabe ist insgesamt Schrott.
hab noch eine Frage, du schreibst ALLE Ausgaben. Das heißt also auch in Formularen wie z.B. hier?

ja, auf jeden Fall!

Wie sieht es aus wenn ich eine eMail verschicke. Muss ich das htmlspecialchars auf die Felder anwenden ...

Nein. Du hast das Konzept anscheinend noch nicht wirklich verstanden.

Es gibt keine allgemeingültige Funktion, die die Maskierung oder das Escaping für alle nur denkbaren Situationen macht. Das muss immer auf den Kontext abgestimmt sein, in den man die Daten einbringt. Willst du Daten als HTML ausgeben, musst du die Maskierungsregeln für HTML beachten. Das macht htmlspecialchars(). Willst du Daten an mysql übergeben, musst du die Maskierungsregeln für SQL beachten. Das macht beispielsweise mysql_real_escape_string().

Wenn du e-Mails versenden willst, musst du ... ähm, Moment, e-Mails sind zunächst mal reiner Text, in dem _alles_ vorkommen darf. Es gibt keine Zeichen, die im e-Mail-Text eine besondere Bedeutung haben, also muss hier auch nichts maskiert werden.
Es sei denn ... du verschickst HTML-formatierte Mails (was man üblicherweise nicht möchte). Dann gelten wieder die Regeln für HTML.

Ich gebe ja gern zu, das Thema ist auf den ersten Blick komplex. Aber wenn man den Kern einmal verstanden hat, ist es eigentlich ganz einfach und selbstverständlich.

So long,
 Martin

--
Männer sind ungerecht: Sie sehen immer nur den Baum, den eine Frau mit dem Auto gerammt hat. Aber die vielen Bäume, die sie nicht einmal gestreift hat, sehen sie nicht.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(