dedlfix: UTF8 - Sonderzeichenformatierung

Beitrag lesen

Hi!

ah ok, den htmlenteties habe ich aufgrund der XSS Problematik [...] genutzt, ohne wäre das zeichen:
      c3 9c
also  Ã  œ   richtig verstanden?

Damit (und wenn du die MySQL-Verbindungskodierung noch einstellst) dürfte sich dein Problem gelöst haben.

(traue keiner Nutzerangabe)

Ja, aber es heißt nicht: verfälsche sie deswegen. :-)

Es ist richtig, dass in Benutzereingaben alles mögliche drin stehen kann. Du solltest sie aber mit Bedacht behandeln.

In einigen Fällen hat man einen klar umrissenen Wertebereich, den man erwartet, beispielsweise eine Zahl zwischen x und y oder einen Wert aus einer Liste vorgegebener Werte oder die Mindest- und/oder Maximal-Länge eines String. Gegen diesen Wertebereich kann man Eingabewerte exakt prüfen.

Manchmal hat man aber nur grobe Vorstellungen: "der Wert muss eine Integerzahl sein", dann reicht es oft, diesen Typ zu erzwingen. intval() liefert garantiert eine Zahl, und Zweifelsfall ist das 0.

Und dann gibt es Werte, die kann man nicht sinnvoll einschränken, den Inhalt eines frei formulierbaren Textes zum Beispiel. Einem solchen kann man mit technischen Mitteln nicht vollständig die unerwünschten Teile entfernen. Spam bleibt Spam, auch wenn man daraus den HTML-Teil gelöscht hat. In einem Gästebuch oder ähnlichen System stört er mit und ohne sichtbarem Code. Man kann nicht (gänzlich) verhindern, dass Müll ins System gelangt, man kann aber dafür zu sorgen, dass diese Texte keinen Schaden anrichten können. Dazu muss das empfangende System genau zwischen Daten und Codebestandteilen unterscheiden können. Alles was Daten ist, muss speziell für den Empfänger behandelt werden, egal aus welcher Quelle sie eben gerade oder irgendwann einmal gekommen sind.

Aber, wie gesagt, erst zur Ausgabe darf behandelt werden, denn während der Verarbeitung stören die für die Maskierung zusätzlich eingefügten Zeichen. ("Hühner" besteht aus 11 Zeichen aber "Hühner" aus 6, "Hühner" sind nicht gleich "Hühner", "Hühner" werden vor "Hasen" einsortiert, obwohl ein ü im Alphabet hinter a kommt, und so weiter).

Lo!