当前位置: 代码迷 >> .NET Framework >> [牛腩]怎么关闭.net framework4.0的请求验证
  详细解决方案

[牛腩]怎么关闭.net framework4.0的请求验证

热度:295   发布时间:2016-05-01 23:22:42.0
[牛腩]如何关闭.net framework4.0的请求验证

         敲牛腩的时候,点击运行提示:从客户端中检测到有潜在危险的 Request.Form 值,感觉自己代码敲的并没有问题,于是开始各种查,下面分享一下我对此进行的研究。


         为什么会报这个错误?


         在 Web 应用程序中,要阻止依赖于恶意输入字符串的黑客攻击,约束和验证用户输入是必不可少的。跨站点脚本攻击就是此类攻击的一个示例。其他类型的恶意数据或不需 要的数据可以通过各种形式的输入在请求中传入。通过在应用程序中的较低级别限制允许通过的数据类型,就可以阻止不希望的事件,即使当使用代码的程序员没有 恰当地使用合适的验证技术时也是如此。


          当请求验证检测到潜在的恶意客户端输入时,会引发此异常来中止请求处理。请求中止能够指示危害您的应用程序安全的企图,例如跨站点脚本攻击。以上为系统报错信息。原因是,在 ASP.NET 1.1 中,@Page 指令上的 ValidateRequest 属性被打开后,将检查以确定用户没有在查询字符串、Cookie 或表单域中发送有潜在危险性的 HTML 标记。如果检测到这种情况,将引发异常并中止该请求。该属性默认情况下是打开的;您无需进行任何操作就可以得到保护。如果您想允许 HTML 标记通过,必须主动禁用该属性。


          

       什么是 请求验证?


          validateRequest=“false”是关闭验证
          requestValidationMode 有两个值:
          2.0 仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。
          4.0 默认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。


       
 如何解决这个错误?


         ASP.NET中的请求验证特性提供了某一等级的保护措施防止XSS攻击,之前版本的ASP.NET的请求验证是默认启动的,但是他仅仅应用于ASP.NET页面中(.aspx文件和.aspx.cs文件)。
           而在ASP.NET4中,请求验证默认对所有类型的请求启动,因为它在BeginRequest被调用之前启动,结果就是对所有资源的请求都要经过请求验证,而不仅仅在.aspx文件和他们的类文件中,甚至包括web service和自定义的httphandler。同样,在自定义httpmodules读取http请求的时候,同样要经过请求验证。由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0。

          所以我们应该在配置文件中设置如下属性:

         <system.web> 
      <compilation debug="true" targetFramework="4.0"/> 
      <httpRuntime requestValidationMode="2.0" /> 
      <pages validateRequest="false"></pages> 
      </system.web>

        

          

版权声明:本文为博主原创文章,未经博主允许不得转载。

19楼u013035538昨天 23:40
在AsP.NEt的后期中会有讲 validateRequest这个控件的使用。
18楼u010028869昨天 23:38
多多积累这样的错误。
17楼u012581322昨天 23:17
遇到问题解决问题,我们会更快的成长
16楼u013044000昨天 22:22
遇到问题,解决问题。
15楼u012904383昨天 21:05
遇到问题,解决问题,加油
14楼u013031185昨天 20:26
有收获到新问题啦~
13楼u013047684昨天 19:24
实践中产生收获,学习了。
12楼u013036685昨天 19:00
发现问题,解决问题。
11楼u013028876昨天 17:48
不将就是发现问题的原动力
10楼u013086062昨天 17:19
遇到问题,解决问题,总结的不错
9楼u012654963昨天 17:09
现在遇到的所有问题都是我们成长的阶梯
8楼u013040472昨天 17:05
不怕不知道就怕不知道
7楼u012308971昨天 14:02
不将就。
6楼u011626283昨天 12:47
大盖,博客格式有待提高哈~
5楼u013034286昨天 11:44
先提出问题再进行解答。
4楼mengdonghui123456昨天 11:30
发现问题,解决问题。
3楼u012829124昨天 10:36
实践得真知!
2楼u013067402昨天 10:09
验证控件的使用,在ASP.NET中会学习的。
1楼u013046597昨天 10:05
不断的进行问题总结