你好,游客 登录 注册 搜索
背景:
阅读新闻

如何解决 A potentially dangerous Request.Form value was detected from the client 错误

[日期:2015-03-01] 来源:  作者: [字体: ]

客户在升级到ASP.NET 4.0后,发现部分表单无法保存,经测试是由于使用了ASP.NET 4.0,默认安全性设置较高造成的。当表单中提交的内容包括<或者>的符号时,就会被服务器作为危险请求而拒绝保存,在ASP.NET 4.0以前,我们可以在aspx页面上方加上ValidateRequest=”false”来忽略此校验,但在ASP.NET 4.0后,此校验在页面执行以前,因此需要修改全局设定方可忽略此校验。

在IIS 8之后,当页面输入框默认情况下输入“<”或者“>”的时候。按照访问策略,这将导致一些安全问题,诸如:跨站脚本攻击(cross-site scripting attack)。而这个问题的更准确描述则是,当你在安装了.NET Framework4.0以上版本后,当你的应用程序以.NET Framework4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括Web

Services等各种HTTP请求,不仅仅针对aspx页面,也针对HTTP Handler,HTTP

Module等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。

在ASP.NET4.0版本上,我们需要更多一行的配置:

在全局级别(Web.config中)设置

<configuration>

<system.web>

<httpRuntime requestValidationMode=“2.0“>

即在<system.web>一节中增加一行<httpRuntime requestValidationMode=“2.0“>即可。

这一点其实在发生错误的页面中已经有说明了。在实际使用过程中,不仅如此,而且我发现requestValidationMode只要设置成小于

4.0就可以,比如:1.0,2.0,3.0,3.9都是可以的,错误提示中指明用2.0,目的只是说明用ASP.NET 2.0的默认方式进行工作。

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
热门评论