Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用wysihtml5编辑器防止注入攻击_C#_Asp.net Mvc_Security_Code Injection_Wysihtml5 - Fatal编程技术网

C# 如何使用wysihtml5编辑器防止注入攻击

C# 如何使用wysihtml5编辑器防止注入攻击,c#,asp.net-mvc,security,code-injection,wysihtml5,C#,Asp.net Mvc,Security,Code Injection,Wysihtml5,我使用wysihtml5编辑器允许用户在ASP.NET MVC4讨论论坛上发布消息。这些消息存储在mssql数据库中,并使用Razor语法呈现到屏幕上: @Html.Raw(post.Html) 虽然这些用户经过身份验证,但我希望确保我不会受到以下注入攻击: 用户帖子: <script>alert('Hacked:' + secretInformation)</script> 通过在控制器中设置,我已允许html存储在db中: [ValidateInput(false

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

@Html.Raw(post.Html)
虽然这些用户经过身份验证,但我希望确保我不会受到以下注入攻击:

用户帖子:

<script>alert('Hacked:' + secretInformation)</script>
通过在控制器中设置,我已允许html存储在db中:

[ValidateInput(false)]

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

这已在前面的问题中得到回答,但以下是一些信息:


您需要Sanizer代码,因为您希望呈现html,但出于安全原因,您当然不希望在标记中显示脚本标记之类的内容。在将html持久化到数据库中之前,我还将使用
AntiXss.GetSafeHtmlFragment
。当您使用razor的
@Html.Raw

时,这将帮助您节省开支。我在这里找到了一个很好的解决方案:


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

谢谢你的回复。GetSafeThmlFragment似乎正在剥离大部分:Test

Test

ddfhdfghdfghdfghdfghdfghdfgh-->testtestddfhdfghdfghdfghdfghdfgh这真的不安全吗?经过一些研究,微软最新版本的AntiXss库似乎太严格了。您能否成功使用此库?自3.0版以来,我从未使用过此库。我正在检查是否可以从黑名单中删除break和bold标记,但在文档方面看不到太多。很抱歉,AntiXS不适合您。我的确在第3版中成功地使用了它,但在我最近开发的任何应用程序中都没有发现所见即所得的需要
[ValidateInput(false)]