Hallo
Die müssen für die Ausgabe in HTML durch
htmlspecialchars
gejagt werden, damit nicht unerwartete Zeichen die Ausgabe im Browser (zer)stören.Unerwartete Zeichen sind das geringste Problem. Sicherheitslöcher sind das Problem.
Ja, aber nein.
Unerwartete Zeichen sind im Gegensatz zu Sicherheitslöchern das nachvollziehbarere Argument. Bei „Achtung, könnte Sicherheitslöcher enthalten!“ kommt — auch hier — immer wieder die Entgegnung, dass die Daten ja von einem selbst stammen (aus der eigenen Datenbank oder Datei oder …) und daher sicher seien. Das Bewusstsein, dass sich dort Fehler eingeschlichen haben könnten oder die Dateien oder Datenbankdaten von dritter Seite manipuliert worden sein könnten, existiert bei vielen Fragenden einfach nicht.
Mit „unerwarteten Zeichen“ kann, aufgrund der Allgemeinheit des Begriffs, alles Mögliche gemeint sein. Das schließt Zeichen, die „nur“ den HTML-Quelltext zerstören (<
oder &
) genauso ein wie ganze Blöcke von eingeschmuggeltem JS-Code, die unmaskiert im Browser zur Ausführung kämen. Also Sicherheitslöcher ebenso wie Unschönheiten, die sich auschließlich in der Darstellung niederschlügen. Zudem ist nach meiner Erfahrung die Reaktion wohlwollender „Wie jetzt? Das will ich nicht, dagegen mach ich auch was!“.
Die bei weitem gravierenderen Auswirkungen — für den Betreiber eines Angebots genauso wie für seine Besucher und/oder Benutzer — haben natürlich Sicherheitslöcher. Die sind bloß oft nicht so einfach vermittelbar, gerade gegenüber Anfängern, denen das Gefühl für die möglichen Bösartigkeiten dieser Welt fehlt.
Tschö, Auge
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett