Hallo zusammen,
ich suche nach einer Möglichkeit einen Text nach nicht erlaubten HTML-Tags zu durchsuchen. Harmlose Tags wie [b], <table> usw. sollen erlaubt sein, aber ohne "gefährliche" Attribute wie "onmousemove".
Ausserdem sollte das HTML "wohl geformt" sein ... also jeder Tag sollte auch einen Schließenden haben und die Reihenfolge sollte auch stimmen (falsch: Text).
Ich denke jeder kennt mein Problem ... ich möchte den Benutzer einer Website die Möglichkeit geben HTML-Code zu posten, ihnen aber nicht erlauben damit Unsinn zu treiben.
Gestern habe ich den ganzen Tag vergeblich versucht eine (einfache/schnelle) Lösung für mein Problem zu finden ... deshalb frage ich hier nach, ob jemand von euch eine (gute) Implementierung dazu kennt.
Meine bisheriger Ansatz: ich hab aus der W3C XHTML-DTD alle Tags und Attribute rausgenommen, die geradezu dazu einladen missbraucht zu werden. Den zu prüfenden HTML-Code lege ich in einem XML-Dokument ab und lasse es von einem XML-Parser validieren.
Bei dem XML-Parser liegt mein Problem:
Prüft zwar auf wellformed aber nicht gegen eine DTD
Und das domxml-Modul habe ich nicht installieren können (auf Win2000+IIS) ... bin ich vermutlich zu Dau dafür.
Bevor ich jetzt noch ein Tag verschwende:
- Ist der Ansatz gut? Oder kann man auch mittelschwere Katastrophen mit einem Attribut wie "href" auslösen? IMHO kann man doch auch in ein href-Attribut js-Code einbauen!
- Hab ich Alternativen dazu (persönliches prüfen kommt vorerst nicht in Frage)? Es kommt nicht auf die Performance an - die Texte sind recht klein. Es wäre genial wenn es ohne PHP-"Extensions" gehen würde.
Vielen Dank,
Oliver
P.S. bin auch bereit ein paar Stunden Online-PHP-Lektüre zu lesen ... sofern die Chance hoch ist das es mich weiterbringt ... also sind auch Links gerne gesehen :wink:
ich suche nach einer Möglichkeit einen Text nach nicht erlaubten HTML-Tags zu durchsuchen. Harmlose Tags wie [b], <table> usw. sollen erlaubt sein, aber ohne "gefährliche" Attribute wie "onmousemove".
Ausserdem sollte das HTML "wohl geformt" sein ... also jeder Tag sollte auch einen Schließenden haben und die Reihenfolge sollte auch stimmen (falsch: Text).
Ich denke jeder kennt mein Problem ... ich möchte den Benutzer einer Website die Möglichkeit geben HTML-Code zu posten, ihnen aber nicht erlauben damit Unsinn zu treiben.
Gestern habe ich den ganzen Tag vergeblich versucht eine (einfache/schnelle) Lösung für mein Problem zu finden ... deshalb frage ich hier nach, ob jemand von euch eine (gute) Implementierung dazu kennt.
Meine bisheriger Ansatz: ich hab aus der W3C XHTML-DTD alle Tags und Attribute rausgenommen, die geradezu dazu einladen missbraucht zu werden. Den zu prüfenden HTML-Code lege ich in einem XML-Dokument ab und lasse es von einem XML-Parser validieren.
Bei dem XML-Parser liegt mein Problem:
Code:
xml_parse($xml_parser, $xml_content, true)
Und das domxml-Modul habe ich nicht installieren können (auf Win2000+IIS) ... bin ich vermutlich zu Dau dafür.
Bevor ich jetzt noch ein Tag verschwende:
- Ist der Ansatz gut? Oder kann man auch mittelschwere Katastrophen mit einem Attribut wie "href" auslösen? IMHO kann man doch auch in ein href-Attribut js-Code einbauen!
- Hab ich Alternativen dazu (persönliches prüfen kommt vorerst nicht in Frage)? Es kommt nicht auf die Performance an - die Texte sind recht klein. Es wäre genial wenn es ohne PHP-"Extensions" gehen würde.
Vielen Dank,
Oliver
P.S. bin auch bereit ein paar Stunden Online-PHP-Lektüre zu lesen ... sofern die Chance hoch ist das es mich weiterbringt ... also sind auch Links gerne gesehen :wink:
Kommentar