ASP.Net MVC 5 中的请求验证

4

过去,我习惯于将请求验证作为防止XSS的第一道防线。

然而,我似乎无法让验证生效。

<httpRuntime requestValidationMode="4.5"/>

<configuration>
    <system.web>
        <pages validateRequest="true" />
    </system.web>
</configuration>

无论如何配置,都没有抛出错误并且没有运行验证。是否有其他全局方式来启用/禁用验证,我是否遗漏了什么?

验证不被触发在哪里:客户端还是服务器? - CodingYoshi
当表单提交到控制器时,请求验证未触发。 - ddango
所以在C#代码中,而不是JavaScript。好的,你的模型在哪里?我们能看到吗? - CodingYoshi
确认一下,您没有使用任何新潮的OWIN/Katana技术,而是使用“经典”的IIS托管应用程序? - Dai
另外,你正在测试哪些类型的输入? - Dai
1个回答

1
自ASP.NET 4.5开始,请求验证增加了一些改进,包括延迟("懒惰")验证、在服务器控件级别选择退出和访问未经验证的数据的能力。为了利用这些改进,您需要确保已将requestValidationMode设置为"4.5"

web.config:

<configuration>
  <system.web>
    <httpRuntime requestValidationMode="4.5"/>
  </system.web>
</configuration>

来自:https://www.owasp.org/index.php/ASP.NET_Request_Validation


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接