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