Alexander Brock: Sicherheit des Textes vor dem paranoiden Programmierer

Beitrag lesen

Hallo Forum,

Nun habe ich mein Datenmanagement nochmals überdacht und bin zu folgendem Entschluss gekommen:

  • Daten vom User dürfen keine < > enthalten, da bei evtl. Ausgabe das Ganze unschön ausschaut auch bei Verwendung von htmlspecialchars()

Also kann man in deinem System weder Artikel über Mathematik noch Programmtext-Beispiele noch HTML-Beispiele speichern. Das ist übel.

  • Daten vom User werden mittels htmlspecialchars() in die Datenbank geschrieben

Du bist dir also hundertprozentig sicher, dass niemals jemand auf die Idee kommen könnte, die Daten z.B. in einem Texteditor zu betrachten zu wollen?

  • SQL Variablen ausschließlich mit mysql_real_escape_string()
  • Bei der Ausgabe von Daten wird nochmals, auch wenn unnötig, htmlspecialchars() angewendet.

Super, dann kann man in deinem System kein kaufmännischen Und und keine einfachen oder doppelten Anführungszeichen verwenden. Willst du die Daten wirklich derart verstümmeln?

Daten müssen immer _nur_ für das nächste Übertragungsmedium maskiert werden, also htmlspecialchars bei der Ausgabe auf Webseiten, $DBMS_escape_string bei der Verwendung in SQL-Statements und urlencode bei der Verwendung in URLs.

Gruß
Alexander Brock