·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 检测到有潜在危险的Request.Form值

检测到有潜在危险的Request.Form值

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

  今天同事遇到一个问题“检测到有潜在危险的 Request.Form 值”,我发现此问题常遇到一般是在提交数据中包含有未编译的HTML控件(不知道是不是这么理解)、特殊的符号(如“<”,“/”)。常见的情况是页面后台提交有/n、/t这样的或者请求数据中包含<b/>这样的,如果出现这样的问题的原因是微软在.net framework2.0中引入了数据提交验证机制以防止有跨站点攻击和危险数据。ep:<img src="javascript:alert('hello');">。如果将alert('hello')换成攻击代码后果不堪设想,关于<style>也是一样。

   好了明白这是数据监测问题那么久有一个简单粗暴的解决方案来解决“检测到有潜在危险的 Request.Form 值”问题,那就是取消验证。取消验证有俩种方式

     1)在页面 Page指令中设置validateRequest="false" 

     2)在全局webconfig设置

<configuration> 
  <system.web> 
    <pages validateRequest="false" /> 
  </system.web> 
</configuration> 

不过后者会将整个项目的验证都取消,而前者是取消当前页面的验证。

注:(有时候你使用的.net framework版本为4.0那么需要在webconfig设置<httPRuntime requestValidationMode="2.0" />。很多时候会忽略这点)

不过说到这里肯定有人会说这不安全,那么还有一种解决方案。

截取这个报错信息自定义处理方式(下班了,下次在写完给自己以后再留下资料)。