加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何验证HTML输入以防止XSS?

发布时间:2020-12-16 03:21:54 所属栏目:asp.Net 来源:网络整理
导读:例如,StackExchange将 HTML的一个子集列入白名单: https://meta.stackexchange.com/questions/1777/what-html-tags-are-allowed-on-stack-exchange-sites 你怎么能在你的控制器中做到这一点,以确保用户输入是安全的? 解决方法 这种方法与StackExchange不同
例如,StackExchange将 HTML的一个子集列入白名单:
https://meta.stackexchange.com/questions/1777/what-html-tags-are-allowed-on-stack-exchange-sites

你怎么能在你的控制器中做到这一点,以确保用户输入是安全的?

解决方法

这种方法与StackExchange不同,但我发现AntiXSS 4.x库以一种简单的方式来清理输入以允许“安全”的HTML.

http://www.microsoft.com/en-us/download/details.aspx?id=28589您可以在此处下载某个版本,但我将其链接到有用的DOCX文件.我首选的方法是使用NuGet包管理器来获取最新的AntiXSS包.

您可以使用4.x AntiXss库中的HtmlSanitizationLibrary程序集.请注意,GetSafeHtml()位于Microsoft.Security.Application.Sanitizer下的HtmlSanitizationLibrary中.

content = Sanitizer.GetSafeHtml(userInput);

这可以在保存到数据库之前完成.优点是立即删除恶意内容,而不必在输出时担心它.缺点是它不会处理任何现有的数据库内容,并且您必须在进行数据库更新时应用此内容.

另一种方法是每次输出内容时都使用此方法.

我很想知道首选方法是什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读