【问题标题】:“A potentially dangerous Request.Form value was detected from the client”“从客户端检测到潜在危险的 Request.Form 值”
【发布时间】:2012-03-03 04:24:54
【问题描述】:

如何在 ASP.NET MVC 3 中永久完全禁用此页面验证

我已经查看了错误消息和其他标题相同的问题。建议的解决方案都没有帮助:

  • 确实有一个

    <httpRuntime requestValidationMode="2.0" />
    

    Web.config&lt;system.web&gt; 部分中。

  • 我也确实&lt;pages&gt;...&lt;/pages&gt; 元素上有一个validateRequest="false" 属性。

但我仍然收到错误消息。我还能尝试什么?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    添加以下代码行:

    GlobalFilters.Filters.Add(new ValidateInputAttribute(false));
    

    Application_Start() 方法。

    【讨论】:

    • 除了禁用 validateRequest 之外还有什么方法,因为它会威胁到网站的安全。
    【解决方案2】:

    [AllowHtml] 添加到操作、参数或属性中。

    编辑:如果您想在任何地方允许它,请将new ValidateInputAttribute(false)] 添加到GlobalFilters.Filters

    【讨论】:

    • 如果我有一百万个动作、参数和属性呢?我不想让每个人都这样做,我只想完全禁用验证。
    • ... 此外,这在语义上是错误的。事实上,我的属性“允许 HTML”。它们只允许任何纯文本,包括包含尖括号的纯文本。
    • @Timwi:查看我的编辑。 HTML 在这里指的是包含尖括号的纯文本。
    • AllowHtml 不是动作过滤器(实现IActionFilter),因此您无法将其添加到全局过滤器中。这只是一个标记属性。或者您可能指的是ValidateInput 操作过滤器?
    • @Timwi 你真的有“一百万个 [...] 属性吗?”
    猜你喜欢
    • 2012-05-29
    • 2013-11-15
    相关资源
    最近更新 更多