Asp.net mvc 4 ASP MVC 4.5 AntiXSS库&x2B;允许HTML内容

Asp.net mvc 4 ASP MVC 4.5 AntiXSS库&x2B;允许HTML内容,asp.net-mvc-4,antixsslibrary,Asp.net Mvc 4,Antixsslibrary,显示了内置的AntiXSS库 <httpRuntime ... encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> @Html.TextBoxFor(x => x.Name, new { @class = "testClass", ma

显示了内置的AntiXSS库

    <httpRuntime ...
      encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

@Html.TextBoxFor(x => x.Name, new { @class = "testClass", maxlength = "50" })

@TextBoxFor(x=>x.Name,新的{@class=“testClass”,maxlength=“50”})
它充满力量,你会明白的

 "A potentially dangerous Request.Form value was detected from the client (Name=\"<b> test </b>\").""
“一个潜在危险的请求。从客户端检测到表单值(名称=\“test\”)。”
对于任何潜在的危险检测

但是


如果我想要这种类型或保护,但又允许所见即所得HTML编辑器使用一些HTML内容,我该怎么办?(例如论坛帖子)

正如@NickBork在他的文章中提到的,此类错误来自ASP.NET请求验证,它们与AntyXSS库无关。AntiXSS库不会保护您的应用程序免受危险输入的影响。它可以帮助您,但您必须明确使用它

要跳过某些属性的请求验证,可以使用:

//模型
公共类MyModel
{
[allowtml]
公共字符串HtmlContent{get;set;}
}
//控制器
公共类HomeController:控制器
{
[HttpGet]
公共行动结果索引()
{
返回视图();
}
[HttpPost]
公共行动结果索引(MyModel MyModel)
{
//使用myModel.HtmlContent
返回视图(myModel);
}
}
@*视图*@
@模型MyModel
@Html.TextBoxFor(m=>m.HtmlContent)
提交
@如果(型号!=null)
{
@Html.Raw(Model.HtmlContent)
}

正如@NickBork在他的文章中提到的,此类错误来自ASP.NET请求验证,它们与AntyXSS库无关。AntiXSS库不会保护您的应用程序免受危险输入的影响。它可以帮助您,但您必须明确使用它

要跳过某些属性的请求验证,可以使用:

//模型
公共类MyModel
{
[allowtml]
公共字符串HtmlContent{get;set;}
}
//控制器
公共类HomeController:控制器
{
[HttpGet]
公共行动结果索引()
{
返回视图();
}
[HttpPost]
公共行动结果索引(MyModel MyModel)
{
//使用myModel.HtmlContent
返回视图(myModel);
}
}
@*视图*@
@模型MyModel
@Html.TextBoxFor(m=>m.HtmlContent)
提交
@如果(型号!=null)
{
@Html.Raw(Model.HtmlContent)
}

这是我们在请求验证中常见的错误类型。您确定您遇到的问题是AntiXss库而不是内置的标准请求验证吗?具有讽刺意味的是,在您发送的链接中,请求验证部分位于AntiXss库部分的上方。您还可以查看有关请求验证的信息lidation。我认为这是.NET保护的作用,而不是反XSS库。看看这是我们在请求验证中常见的错误类型。您确定您遇到的问题是反XSS库而不是内置的标准请求验证吗?具有讽刺意味的是,请求验证部分位于您发送的链接中的NTIXS库部分。您还可以查看请求验证的信息。我认为这是.NET保护,而不是反XSS库。请查看