Frage

Dieser Link beschreibt eine in meine App ausnutzen fckeditor mit: http://knitinr.blogspot.com/2008/07/ Skript-Exploit-via-fckeditor.html

Wie kann ich meine App sichern, während noch fckeditor mit? Ist es eine fckeditor Konfiguration? Ist es eine Verarbeitung ich sollte Server-Seite tun, nachdem ich den Text aus fckeditor greifen?

Es ist ein Puzzle, weil fckeditor VERWENDET HTML-Tags für die Formatierung, so kann ich nicht nur HTML kodieren, wenn ich den Text anzuzeigen zurück.

War es hilfreich?

Lösung

Sanitize html serverseitige, keine andere Wahl. Für PHP wäre es HTML Purifier sein, für .NET Ich weiß nicht. Es ist schwierig, HTML zu sanieren -. Es nicht ausreichend ist Script-Tags strippen, müssen Sie auch für auf * Event-Handler achten und noch mehr, dank Dummheiten von IE zum Beispiel

Auch mit benutzerdefinierten HTML und CSS ist es einfach aussehen und das Layout Ihrer Website kapern -. Overlay mit (absolut positioniert), die deckt alle Bildschirm usw. darauf vorbereitet sein

Andere Tipps

Der Fehler ist nicht wirklich FCKeditors Fehler. Solange Sie Benutzer bearbeiten HTML lassen, die auf Ihrer Website angezeigt wird sie immer die Möglichkeit haben, Schaden zu tun, wenn Sie die Daten überprüfen, bevor Sie geben es.

Einige Leute benutzen HTMLencoding, dies zu tun, aber das wird alle Formatierungen von FCKeditor getan zerstören, nicht das, was Sie wollen.


Vielleicht können Sie mit der Microsoft Anti-Cross-Site-Scripting-Bibliothek . Die Proben auf MSDN

  

Ist es eine Verarbeitung ich sollte Server-Seite tun, nachdem ich den Text aus fckeditor greifen?

Genau. Stackoverflow hatte einige im Zusammenhang mit diesem frühen Ausgaben als auch. Der einfachste Weg, es zu lösen, ist eine HTML-Bibliothek verwendete Benutzereingabe zu analysieren, und die Flucht dann alle Tags, die Sie in der Ausgabe nicht wollen. Tun Sie dies als Nachbearbeitungsschritt, wenn Sie auf der Seite Druck -. Die Daten in der Datenbank sollten genau das gleiche sein wie das, was der Benutzer eingegeben

Zum Beispiel, wenn der Benutzer <b><script>evil here</script></b> eintritt, Ihr Code würde es übersetzen vor dem Rendern der Seite <b>&lt;script&gt;evil here&lt;/script&gt;</b>.

und nicht verwendet reguläre Ausdrücke für diese Lösung, das ist nur eine Einladung für jemanden klug es wieder zu brechen.

FCKEditor kann so konfiguriert werden, um nur ein paar Tags zu verwenden. Sie müssen alles kodieren, außer für die wenigen Tags.

Diese Tags sind.

    • Der font-Tag sollte nur Gesicht und Größe Attribute hat. Die Tag-Spanne sollte nur eine Klasse Attribut hat.

      Keine andere Attribute sollen für diese Tags erlaubt werden.

  

Ich verstehe die DONTS. Ich bin fehlt eine DO.

Ist die Benutzung von FCKEditor eine Anforderung, oder können Sie eine andere Editor / Markup-Sprache verwenden? Ich rate mit Abschlag und WMD-Editor, die gleiche Sprache, die von Stackoverflow. Die Bibliothek für .NET Markdown sollte eine Option, alle HTML-Tags zu entkommen -. Sicher sein, um es zu aktivieren

XSS ist eine heikle Sache. Ich schlage vor, etwas zu lesen:

Wie auch immer, meine Zusammenfassung ist, wenn es bis zu ihm kommt, müssen Sie nur streng akzeptiert Elemente erlauben in; Sie können nicht ablehnen bekannte Vektoren ausnutzen, weil oder Sie immer hinter dem ewigen Kampf sein wird.

Ich denke, das Problem durch einige angehoben ist nicht, dass fckeditor nur ein paar Tags kodiert. Dies ist eine naive Annahme, dass ein böser Benutzer die fckeditor verwenden, um seine Bosheit zu schreiben. Die Werkzeuge, die manuelle Änderung der Eingabe erlauben sind Legion.

Ich behandle alle Benutzerdaten als verdorben; und verwenden Abschriften Text zu HTML zu konvertieren. Es reinigt alle HTML in dem Text gefunden, die Bosheit reduziert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top