Sicherheit von online HTML editor
ChrisL
- php
Hallo Forum
Zusätzlich zu...
http://forum.de.selfhtml.org/?t=163607&m=1065438
habe ich noch ein Spezialproblem :-)
Habe in mein Programm folgenden "web based rich text editor" eingebaut:
http://www.unverse.net/whizzywig-cross-browser-html-editor.html
Da kommt ein HTML-Code raus und den schreibe ich in eine SQL-DB und gebe die Daten wieder aus.
strip_tags() und htmlspecialchars(), die ich für "normale" textfelder verwende (siehe anderer Beitrag) kann ich jetzt alles gar nicht verwenden, weil es soll ja explizit ein HTML Code sein.
Bedeutet dies nun, dass die Verwendung eines solchen Editors ganz prinzipiell unsicher ist? Oder gibt es Möglichkeiten zwischen einem schädlichen und einem harmlosen HTML Code zu unterscheiden?
Vielen Dank im Voraus und Gruss
Chris
Hello,
Bedeutet dies nun, dass die Verwendung eines solchen Editors ganz prinzipiell unsicher ist? Oder gibt es Möglichkeiten zwischen einem schädlichen und einem harmlosen HTML Code zu unterscheiden?
das kommt darauf an - kannst _du_ zwischen beiden Varianten unterscheiden, gar auf Grund der Struktur? Dann kannst du das auch einem Skript beibringen, beispielsweise <script>-Tags zu filtern, die auf welche Art auch immer in den Quelltext gewandert sind.
MfG
Rouven
Hallo Rouven
Danke für die Antwort. Das Ziel war dem User eine einfache Textformatierung zu erlauben und Script braucht es nicht. Ich filtere deshalb wie vorgeschlagen die <script>-tags. Php-tags werden schon durch den Editor gefiltert.
Damit bin ich hoffentlich auf der sicheren Seite, oder gibts noch andere tags die "bösartig" verwendet werden könnten?
Nochmals danke und Gruss
Chris
Damit bin ich hoffentlich auf der sicheren Seite, oder gibts noch andere tags die "bösartig" verwendet werden könnten?
Also wenn ich dich richtig verstehe, dann kann hier ein User eine HTML-Seite gestalten die dann irgendwo GEPARSED angezeigt wird? ...
Man könnte auch ganz einfach, ohne Script-Tag ein,
<body onLoad="for(var i = 0; i < 10000; i++) alert('SPAM!!!');">
einbauen und schon wäre das Script lahmgelegt... bzw würde vielleicht auch der Browser abstürzen...
Sowas ist immer Heikel!
Gruß,
Matty
Hallo Matty, hallo Tom
Ich glaub zu verstehen was ihr beide sagt und danke herzlich für die Hinweise. Vermutlich lasse ich nun den Editor unverändert, aber wenigstens kenne ich das damit verbundene Risiko. Serverseitig werde ich noch mehr Grundlagenforschung betreiben, Tom hat mir im letzten Beitrag schon wertvolle Hinweise gegeben.
mfG
Chris
Hello,
Danke für die Antwort. Das Ziel war dem User eine einfache Textformatierung zu erlauben und Script braucht es nicht. Ich filtere deshalb wie vorgeschlagen die <script>-tags. Php-tags werden schon durch den Editor gefiltert.
Was heißt: "Php-tags werden schon durch den Editor gefiltert"?
Der Editor arbeitet doch aner auf dem Client, oder?
Dann könnte man also mit einem eigenen Formular eine Textsequenz zum Server übermitteln, die PHP-Code nebst der des notwendigen Tags enthält und die würde dann auf dem Server dem Parser übergeben?
Damit bin ich hoffentlich auf der sicheren Seite, oder gibts noch andere tags die "bösartig" verwendet werden könnten?
Das hängt davon ab, wie Du die übertragenen Daten auf dem Server behandelst.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
echo $begrüßung;
Dann kannst du das auch einem Skript beibringen, beispielsweise <script>-Tags zu filtern, die auf welche Art auch immer in den Quelltext gewandert sind.
Und was ist mit den event-Attributen, die ebenfalls Scriptcode enthalten können?
echo "$verabschiedung $name";
Hello,
Und was ist mit den event-Attributen, die ebenfalls Scriptcode enthalten können?
mein Beispiel war ein ebensolches und erhob keinen Anspruch auf Vollständigkeit! Kernpunkt meiner Aussage war, dass man Strukturen, die man selbst als schadhaft erkennen kann, auch einem entsprechenden Skript beibringen kann. Wenn du onclick als bedrohlich empfindet gehört es in diese Kategorie.
Falls das ein Hinweis an ChrisL war: Ja Chris, bitte bedenke auch solche Sachen!
MfG
Rouven