2

初歩的な質問かもしれませんが (ほとんどの場合)、公式の開発者ドキュメントによると、GWT の HTML ウィジェットは XSS セーフではなく、カスタム HTML/スクリプト テキストを埋め込むときは注意が必要です。

だから私は私の質問だと思います、なぜこれをするのですか:

HTML testLabel = new HTML("dada<script type='text/javascript'>document.write('<b>Hello World</b>');</script>");

JavaScriptポップアップを表示しませんか? どういうわけか、GWT の HTML ウィジェットが XSS 攻撃から保護する場合、どのような状況で保護しないのですか?

4

2 に答える 2

2

このウィジェットについては特に知りませんが、一般的に、XSS ベクトルにはさまざまな種類があることを知っておく価値があります。script実際にタグを使用しているのはごくわずかです。

非常に重要な要素の 1 つは、それらが場所に依存することです。たとえば、タグの外側では xss セーフである文字列は、タグの属性値内、または JavaScript ブロック内の区切り文字列内では安全ではない可能性があります。

多くの場合、ドキュメント解析モデルの「バグ」を悪用するため、ブラウザーに依存することもあります。

悪用されて悪意のある JavaScript インジェクションが生成される可能性があるさまざまなベクトルを把握するには、次の 2 つのチート シートを参照してください。

また、owaspの予防チート シートを読むことをお勧めします 。

于 2012-04-13T11:13:19.310 に答える
2

GWT ドキュメントには、セキュリティに関する記事がほとんど含まれていません ( SafeHtmlを使用した XSS の処理を​​含む)。

経由で定義されたスクリプトinnerHTMLが Chrome/Firefox で実行されないため、あなたの例は機能しません (属性を使用する IE にはいくつかの回避策があったと思いdeferます)。

ただし、このブラウザーの制限に依存するべきではありません。そのため、SafeHtml を使用し、常にユーザーからの入力を検証することをお勧めします。

于 2012-04-13T11:47:08.677 に答える