0

我正在使用 wysihtml5 编辑器来允许用户在 ASP.NET MVC4 讨论论坛上发布消息。这些消息存储在 mssql db 中,并使用 Razor 语法呈现到屏幕上:

@Html.Raw(post.Html)

尽管这些用户已经过身份验证,但我希望确保我不会受到以下注入攻击:

用户帖子:

<script>alert('Hacked:' + secretInformation)</script>

MVC 呈现警报框,带:

Hacked: ::secret info::

通过在控制器中设置,我允许将 html 存储在数据库中:

[ValidateInput(false)]

我可以采取哪些步骤来确保我只呈现干净的 html 代码并且不易受到攻击?

4

2 回答 2

1

这已在之前的问题中得到解答,但这里有一些信息:

AntiXss.HtmlEncode 与 AntiXss.GetSafeHtmlFragment

您将需要消毒剂代码,因为您希望呈现 html,但出于安全原因,您当然不希望脚本标签等内容出现在标记中。AntiXss.GetSafeHtmlFragment在将 html 持久化到数据库中之前,我也会使用。当您使用剃须刀时,这将帮助您节省@Html.Raw

于 2013-05-30T16:03:58.163 回答
0

我在这里找到了一个很好的解决方案:AntiXss 4.2 Breaks everything

感谢贾斯汀的指导。让我们去微软吧,让我们看看一个不会吞噬我所有标签的解决方案!

于 2013-05-30T17:14:09.193 回答