2

ASP.NETプロジェクトでAjaxControlToolkitを使用していますが、ContentHtmlEditorという名前のHtmlEditorExtenderに問題があります。ContentBoxという名前のTextBoxにアタッチされたHtmlEditorExtender

XSSアタックを作ってみました。ChromeでHTMLコードを編集し、次の文字列を挿入しました。

<a href='javascript:alert()'>bla-bla-bla</a>

ポストバック後、 ContentBox.Textは<a href="javascript:alert()">bla-bla-bla</a>に等しくなります。

ご覧のとおり、 javascript:alert()は削除されていませんが、私が知っているように、Ajax ControlToolkitHtmlEditorExtenderはAntiXssSanitizerを使用しています。

電話すると

ContentHtmlEditor.SanitizerProvider.GetSafeHtmlFragment("<a href='javascript:alert()'>bla-bla-bla</a>")

それは戻ります:

<a>bla-bla-bla</a>

でも電話すると問題があります

ContentHtmlEditor.SanitizerProvider.GetSafeHtmlFragment("<a href='http://somesite.com'>bla-bla-bla</a>")

それから同じ文字列を返すからです:

<a>bla-bla-bla</a>

しかし、リンクの場合は参照を知る必要があります。

何が問題ですか?また、自分のサイトでXss攻撃を防ぐにはどうすればよいですか?

4

0 に答える 0