Raw HTML

Problem: Es gibt zwei verschiedene Aufgaben – reinen Text in ein Wiki zu setzen, so dass er unverändert angezeigt wird; und HTML in ein Wiki zu setzen, so dass er unverändert angezeigt wird, d.h. vom Browser gerendert wird.


Vorgeschlagene Lösung:

  1. Die Syntax der doppelten Anführungszeichen löst das erste Problem. Auf deren Inhalt wird htmlspecialchars() ausgeführt. Erledigt.
  2. Das zweite Problem wird durch die neue Syntax gelöst. Erledigt.
    1. The <# #> wird vorgeschlagen.
  3. In der zweiten Aufgabe wird, je nach Einstellung in der Konfigurationsdatei, der gefährliche HTML-Code entfernt oder nicht entfernt. Erledigt.
    1. siehe SafeHTML – Anti-XSS-HTML-Parser


Gefährlicher Code ist:

  • Attribute on*, data*, action="javascript:", href="javacript:", dynsrc.
  • Tags <object>, <layer>, <ilayer>, <frame>, <iframe>, <script>, <embed>, <applet>, <bgsound>, <style>, <link>, <body>, <meta>, <frameset>.
  • Entfernung gefährlicher CSS.
    • position: (jedoch nicht backgound-position:)
    • @import
    • @font-face:
    • expression
    • behavior
  • In Bezug auf das Thema wird vorgeschlagen, strip_tags() mit einer kleinen Menge zulässiger Tags zu verwenden, z. B. i, a, b, s, strong, strike, u. Das Attribut style sollte ebenfalls entfernt werden.

Comments