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


      今天同事遇到一个问题“检测到有潜在危险的 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" />。很多时候会忽略这点

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

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

  • 相关阅读:
    jquery总结
    Reporting Services子报表
    Reporting Services分组及Toggle
    Reporting Services报表钻取
    Reporting Services环境
    两种很有用的组件
    Reporting Services正确显示页码
    Reporting Services发布
    Java面试题
    BigInteger引申的一个访问权限控制解决方案
  • 原文地址:https://www.cnblogs.com/cjl2013/p/3572126.html
Copyright © 2020-2023  润新知