[牛腩]如何关闭.net framework4.0的请求验证
来源:互联网 发布:火影忍者av软件 编辑:程序博客网 时间:2024/06/09 19:44
敲牛腩的时候,点击运行提示:从客户端中检测到有潜在危险的 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>
- [牛腩]如何关闭.net framework4.0的请求验证
- 如何block .NET FRAMEWORK4.51的安装
- windows server2008R2如何安装.net framework4.0
- .NET Framework4.5 & .NET Framework4.0
- net framework4.0
- [.net framework4.0]基于.NET Framework 4.0的解决方案部署
- .Net Framework4 与.Net Framework4.0 client profile区别问题
- FrameWork4.0的兼容问题
- FrameWork4.0的兼容问题 .
- 利用.NET Framework4.0的源代码调试你的应用程序
- 关闭请求验证.NET Framework 4.0-RequestValidationMode
- xp不能安装NET Framework4.0解决方法
- net framework4.0 安装神作
- .Net Framework4.0安装错误解决方案
- xp不能安装NET Framework4.0解决方法
- 向IIS中添加.net Framework4.0
- .net framework4.0 安装回滚问题
- Net Framework4.0安装失败解决之道
- 启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)
- IOS中发http request
- 假期计划
- 投资
- Android-70-SQLite出错:no such table: XXXTbl
- [牛腩]如何关闭.net framework4.0的请求验证
- SVN过滤设置
- ListView实现滚动动画
- 分支-18. 求一元二次方程的根
- JAVA 之"线程"
- 树莓派 shell(ethtool、miitool)判断网口网线是否插好 方法总结
- Java中GUI界面美化帮助类总结
- 循环-08. 二分法求多项式单根
- 内部排序——堆排序初探