博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[牛腩]如何关闭.net framework4.0的请求验证 ...
阅读量:6695 次
发布时间:2019-06-25

本文共 1353 字,大约阅读时间需要 4 分钟。

         敲牛腩的时候,点击运行提示:从客户端中检测到有潜在危险的 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>

        

          

转载于:https://www.cnblogs.com/zhemeban/p/7183145.html

你可能感兴趣的文章
我的友情链接
查看>>
iOS12系统应用发送普通邮实现发送
查看>>
按值传递还是按引用传递详细解说
查看>>
sql中的下划线不作为通配符的做法
查看>>
AIX查看网卡实时流量
查看>>
PLC如何和手机通信
查看>>
Spring之AOP的实现
查看>>
Linux下rz,sz与ssh的配合使用
查看>>
KVM虚拟化学习总结之简介
查看>>
php如何用window.open实现excel数据导出
查看>>
使用代理服务器环境下的XP自动更新
查看>>
我的友情链接
查看>>
apache虚拟主机的搭建
查看>>
【Linux系统安装】磁盘与分区的命名规则
查看>>
关于Android手势类GestureDetector类
查看>>
hadoop相关要点
查看>>
Cubieboard官方 GPIO驱动使用总结
查看>>
rman恢复数据库
查看>>
Struts2学习笔记(一)初步了解Struts2以及配置
查看>>
我的友情链接
查看>>