2 Stimmen

GWT HTML Widget XSS-Sicherheit

Möglicherweise eine Anfängerfrage (sehr wahrscheinlich), aber gemäß den offiziellen Entwicklerdokumenten ist das HTML-Widget von GWT nicht vor XSS-Angriffen sicher und man muss Vorsicht walten lassen, wenn benutzerdefiniertes HTML/Script-Text eingebettet wird.

Also, meine Frage ist, warum zeigt dies nicht an:

HTML testLabel = new HTML("dadadocument.write('<b>Hello World</b>');");

kein JavaScript-Popup? Falls auf irgendeine Weise das HTML-Widget von GWT vor XSS-Angriffen schützt, in welchen Situationen tut es das nicht (damit ich weiß, was zu erwarten ist)?

2voto

Cheekysoft Punkte 34104

Ich kenne dieses Widget im Speziellen nicht, aber im Allgemeinen lohnt es sich zu wissen, dass XSS-Vektoren in vielen verschiedenen Varianten vorkommen. Nur ein kleiner Prozentsatz verwendet tatsächlich das script-Tag.

Ein sehr wichtiger Faktor ist, dass sie ortsabhängig sind. Zum Beispiel ist eine Zeichenfolge, die außerhalb von Tags xss-sicher ist, möglicherweise nicht sicher innerhalb des Werts eines Attributs eines Tags oder in einer begrenzten Zeichenfolge, die sich innerhalb eines JavaScript-Blocks befindet.

Sie können auch browserabhängig sein, da viele 'Fehler' im Dokumenten-Analysenmodell ausnutzen.

Um einen Eindruck von der Vielzahl verschiedener Vektoren zu bekommen, die missbräuchlich für die Einschleusung von bösartigem JavaScript verwendet werden können, sehen Sie sich bitte diese beiden cheat sheets an.

Ich empfehle auch, das Präventions-Cheat-Sheet bei OWASP zu lesen.

2voto

jusio Punkte 9730

Die GWT-Dokumentation enthält einige Artikel zur Sicherheit (einschließlich Umgang mit XSS unter Verwendung von SafeHtml).

Ihr Beispiel funktioniert nicht, weil Skripte, die über innerHTML definiert sind, in Chrome/Firefox nicht ausgeführt werden (ich denke, es gab einen Workaround für IE unter Verwendung des defer-Attributs).

Aber Sie sollten sich nicht auf diese Browserbeschränkung verlassen... Es ist besser, SafeHtml zu verwenden und immer Benutzereingaben zu validieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X