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:
- Die Syntax der doppelten Anführungszeichen löst das erste Problem. Auf deren Inhalt wird
htmlspecialchars()
ausgeführt. Erledigt.
- Das zweite Problem wird durch die neue Syntax gelöst. Erledigt.
- The
<# #>
wird vorgeschlagen.
- The
- In der zweiten Aufgabe wird, je nach Einstellung in der Konfigurationsdatei, der gefährliche HTML-Code entfernt oder nicht entfernt. Erledigt.
- siehe SafeHTML[link1] - 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.
- [link1] https://wackowiki.org/doc/Dev/Projects/SafeHTML