我在我的ASP.NET项目使用Ajax控件工具包和我有HtmlEditorExtender一个问题,名字是ContentHtmlEditor。 HtmlEditorExtender连接到文本框 ,其名称为ContentBox。
我试图让一个XSS阿塔克。 我编辑HTML代码与Chrome和插入以下字符串:
<a href='javascript:alert()'>bla-bla-bla</a>
回传后ContentBox.Text等于<a href="javascript:alert()">喇嘛喇嘛喇嘛</A>。
正如你所看到的javascript:警报()并没有被删除,但我知道的Ajax控件工具包HtmlEditorExtender使用AntiXss消毒剂。
当我打电话
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攻击?