dedlfix: htmlentities() oder htmlspecialchars() ?

Beitrag lesen

echo $begrüßung;

Die Frage ist zwar indirekt beantwortet, würde jedoch nochmal konkret nachfragen, ob nun vom Sicherheitsaspekt die Funktion htmlspecialchars() oder htmlentities() besser gestellt ist?

Wenn du da nochmal nachfragst, ist dir sicherlich nicht klar, was konkret die Sicherheitesbeeinträchtigung im HTML-Kontext ist. HTML ist eines der Systeme, das Anweisungen und Nutzinhalte zusammen in ein Dokument bringt. Damit das eine vom anderen unterschieden werden kann, gibt es Regeln für die Syntax. HTML-Anweisungen werden in < und > notiert. Damit sind diese Zeichen nun für anzuzeigenden Text nicht mehr eindeutig verwendbar. Sie werden deshalb im Nutztext als Entity oder numerische Zeichenreferenz dargestellt. Wenn man sie nicht in dieser Form notiert und der Empfänger daraufhin eine Anweisung erkennt und umsetzt, die vom Autor der Seite so nicht gewünscht ist, ist das der Aspekt, der sicherheitstechnische Probleme verursachen kann.

Die HTML-eigenen Zeichen sind die eine Sache. Dass man außerdem noch jedes beliebige andere Zeichen als numerische Zeichenreferenz und einige als Entity darstellen kann, hat keine Sicherheitsaspekte mehr sondern ist den Systemen geschuldet, die solche Zeichen nicht direkt verarbeiten können. Notwendig werden sie, wenn man eine Kodierung verwendet, die dieses Zeichen nicht enthält (z.B. € in ISO-8859-1). Kann man jedoch eine der Unicode-Kodierungen verwenden, besteht keine Notwendigkeit mehr, andere als die HTML-eigenen Zeichen indirekt zu notieren.

echo "$verabschiedung $name";