我正在使用wysihtml5编辑器允许用户在ASP.NET MVC4论坛上发布消息。这些消息存储在mssql数据库中,并使用Razor语法呈现到屏幕:
@Html.Raw(post.Html)
虽然这些用户已通过身份验证,但我希望确保我不会受到以下注入攻击:
用户帖子:
<script>alert('Hacked:' + secretInformation)</script>
MVC呈现警告框w /:
Hacked: ::secret info::
我已经允许通过在控制器中设置来将html存储在数据库中:
[ValidateInput(false)]
我可以采取哪些措施来确保我只提供干净的HTML代码并且不容易受到攻击?
答案 0 :(得分:1)
以前的问题已经回答了这个问题,但这里有一些信息:
AntiXss.HtmlEncode vs AntiXss.GetSafeHtmlFragment
你需要sanitzer代码,因为你想要html渲染但是你不希望出于安全原因在标记中出现像脚本标签这样的东西。在将html保存在数据库中之前,我也会使用AntiXss.GetSafeHtmlFragment
。当您使用剃刀@Html.Raw
答案 1 :(得分:0)
我在这里找到了一个很好的解决方案:AntiXss 4.2 Breaks everything
感谢贾斯汀的指导。让我们去微软吧,让我们看看一个不会吞噬我所有标签的解决方案!