【问题标题】:What does requestValidationMode="2.0" actually do?requestValidationMode="2.0" 实际上做了什么?
【发布时间】:2011-09-06 14:02:42
【问题描述】:


我正在尝试解决“从客户端检测到潜在危险的 Request.Form 值”问题,SO 回答和Scott Hanselman 建议设置

<httpRuntime requestValidationMode="2.0" />

在 Web.config 中(以及向有问题的方法添加属性)。
我意识到这会将验证模式更改为 ASP.NET 2.0,但这意味着什么?
而且,这种变化是否有我应该注意的副作用?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    查看MSDN's HttpRuntimeSection.RequestValidationMode Property的描述。

    2.0。请求验证仅对页面启用,并非对所有 HTTP 请求启用。另外,页面的请求验证设置 配置文件或@Page 指令中的元素(如果有) 在单个页面中用于确定哪些页面请求 验证。

    【讨论】:

      【解决方案2】:

      看看ASP.NET Request Validation>

      ASP.NET 中的请求验证功能提供了一定程度的 针对跨站点脚本 (XSS) 攻击的默认保护。在 以前版本的 ASP.NET,请求验证由 默认。但是,它仅适用于 ASP.NET 页面(.aspx 文件和 它们的类文件)并且仅在这些页面正在执行时。

      在 ASP.NET 4 中,默认情况下,为所有用户启用请求验证 请求,因为它在 BeginRequest 阶段之前启用 HTTP 请求。因此,请求验证适用于 所有 ASP.NET 资源,而不仅仅是 .aspx 页面请求。这包括 Web 服务调用和自定义 HTTP 处理程序等请求。要求 当自定义 HTTP 模块正在读取 HTTP 请求的内容。

      因此,请求现在可能会出现请求验证错误 以前没有触发错误。恢复到行为 ASP.NET 2.0 请求验证功能,添加以下设置 在 Web.config 文件中:

      <httpRuntime requestValidationMode="2.0" />
      

      但是,我们建议您分析任何请求验证错误 确定现有的处理程序、模块或其他自定义代码 访问可能是 XSS 攻击的潜在不安全 HTTP 输入 向量。

      【讨论】:

        猜你喜欢
        • 2013-06-02
        • 2020-11-21
        • 2015-02-26
        • 2017-06-29
        • 2013-06-13
        • 2021-10-25
        • 2011-08-12
        • 1970-01-01
        • 2010-11-27
        相关资源
        最近更新 更多