我在我的ASP.NET项目中使用Ajax Control Toolkit,我遇到了 HtmlEditorExtender 的问题,其名称是 ContentHtmlEditor 。附加到 TextBox 的 HtmlEditorExtender ,其名称为 ContentBox 。
我试图制作一个XSS Atack。我用Chrome编辑了html代码并插入了以下字符串:
<a href='javascript:alert()'>bla-bla-bla</a>
回发后 ContentBox.Text 等于&lt; a href =“javascript:alert()”&gt; bla-bla-bla&lt; / a&gt; 。< / p>
正如您所看到的, javascript:alert()尚未删除,但我知道Ajax Control Toolkit HtmlEditorExtender正在使用AntiXss Sanitizer。
当我打电话
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攻击呢?