2016-05-28 27 views
-1

Ich würde gerne wissen, was die besten Möglichkeiten sind, XSS in einer GWT-App zu verhindern, während Benutzern immer noch die Möglichkeit geboten wird, benutzerdefinierten HTML-Code zu bearbeiten und anzuzeigen (zB ein Rich Text) Editor).GWT - XSS Prävention und Rendering sicher/einfach html

Insbesondere, wenn ein Benutzer versucht, einen bösen versteckten Code in einer öffentlichen Entität zu speichern, die von anderen Benutzern als HTML angezeigt werden soll, möchte ich sicherstellen, dass der böse HTML nicht ausgeführt wird.

Beispiel:

<img src=a onerror="alert('evil');"> 
<br> 
<b>test1</b> 
<font>test2</font> 

In diesem Code würde Ich mag die <br>, <b>, <font> Tags ermöglichen und sogar <img>, aber ich möchte das Javascript abzustreifen. Ich habe versucht, die SafeHtml Utility-Klassen zu testen, aber: SafeHtmlBuilder und SafeHtmlUtils entkommen alle Tags (also wäre dies gut für ein Formular mit Vorname, Nachname, aber nicht gut, wenn der Text von einem Rich-Text-Editor rendern?) Und SimpleHtmlSanitizer hat nur sehr wenige erlaubte Tags.

Meine Frage ist, gibt es eine Möglichkeit, dies in GWT zu erreichen (Schutz der "guten" Benutzer vor dem "schlecht" beim Rendern eines HTML) oder es ist ein Muss, dass die Textverarbeitung auf der Serverseite erfolgen soll ?

+0

Ich würde vorschlagen, "gwt xss" zu googeln und die ersten beiden Dokumente zu lesen. –

Antwort

1

Dies ist, was HtmlSanitizer ist für. Die SimpleHtmlSanitizer ist vielleicht etwas zu einfach für Ihren Anwendungsfall, kann aber als eine gute Grundlage dienen, um Ihre eigenen zu erstellen.

+0

Also im Grunde genommen, wenn ich Ex zulassen will. Tags, aber nicht JavaScript-Callbacks wie "onerror", sollte ich den Code schreiben, der den HTML-Streifen, den ich nicht brauche, in der "Sanitize" -Methode strip? –