.net 4.0 ValidateRequest="false" 无效

昨天安装了VisualStudio 2010 Ultimate,今天把最近的一个项目升级到了4.0下,结果跑了一下,发现关于页面启用 ValidateRequest="false" 的部份失效。于是把web站点的版本及项目版本都降回原来的版本后,错误就消失了,于是搜索了一下,找到如下资料:

A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$txtCode="<code></code>").

Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. To allow pages to override application request validation settings, set requestValidationMode="2.0" in the configuration section. After setting this value, you can then disable request validation by setting validateRequest="false" in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. For more information, see http://go.microsoft.com/fwlink/?LinkId=153133.

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$txtCode="<code></code>").


Version Information: Microsoft .NET Framework Version:4.0.21006; ASP.NET Version:4.0.21006.1

在安装了Visual Studio 2010 Beta2之后,当页面输入框默认情况下输入“<”或者“>”的时候。按照访问策略,这将导致一些安全问题,诸如:跨站脚本攻击(cross-site scripting attack)。而这个问题的更准确描述则是,当你在安装了.NET Framework 4.0以上版本后,当你的应用程序以.NET Framework 4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括Web Services等各种HTTP请求,不仅仅针对aspx页面,也针对HTTP Handler,HTTP Module等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。

基于以上原理,在ASP.NET之前的版本中,请求验证也是默认开通的,但是发生在页面级(aspx)的,并且只在请求执行的时候生效,因此,在旧的版本中,我们只需要按以下方式配置即可:

在页面级别(aspx中)设置
ValidateRequest="false"
或者
在全局级别(Web.config中)设置
<configuration>
    <system.web>
        <pages validateRequest="false">

但是,以上设置仅对ASP.NET4.0以上有效。在ASP.NET4.0版本上,我们需要更多一行的配置:

在全局级别(Web.config中)设置
<configuration>
    <system.web>
        <httpRuntime requestValidationMode="2.0">

这一点其实在发生错误的页面中已经有说明了。在实际使用过程中,不仅如此,而且我发现requestValidationMode只要设置成小于4.0就可以,比如:1.0,2.0,3.0,3.9都是可以的,错误提示中指明用2.0,目的只是说明用ASP.NET 2.0的默认方式进行工作。

转载于:https://www.cnblogs.com/vingi/articles/2478134.html

.net 4.0 ValidateRequest=false 无效相关推荐

  1. .net 4.0 ValidateRequest=false 无效解决方法

    安装了VisualStudio 2010 Ultimate,最近的一个项目升级到了4.0下,结果跑了一下,发现关于页面启用 ValidateRequest="false" 的部份失 ...

  2. ValidateInput(false)与this.ValidateRequest = false无效的解决方案

    ValidateInput(false)与this.ValidateRequest = false无效的解决方案 鼓捣了半天 终于解决了这个问题 写出来 叫后人少费点劲 在最外层的web.config ...

  3. asp.net学习笔记异常处理001---.framework4.0中asp.net页面ValidateRequest=false 无效的问题

    在做牛腩新闻发布系统的时候,部分同学可能会遇到这样的情况: 从客户端(ContentPlaceHolder1_m_ContentPlaceHolder_ftbContent="<P&g ...

  4. ValidateRequest=false 无效

    在做牛腩新闻发布系统的时候,部分同学可能会遇到这样的情况: 从客户端(ContentPlaceHolder1_m_ContentPlaceHolder_ftbContent="<P&g ...

  5. pages validateRequest=false/在.net4.0中无效的问题

    再web.config中设置<pages validateRequest="false"/>在.net4.0中无效的问题 解决方案: <system.web> ...

  6. ASP.NET 4.0: 请求验证模式变化导致ValidateRequest=false失效

    ASP.NET请求验证功能可以给我提供应用程序的安全保证,避免站点受到XSS的攻击.但是在一些情况下,我们需要禁用这个功能,比如我们需要使用HtmlEditor来让用户输入一些HTML文本,这时候AS ...

  7. ValidateRequest=false 不在.net2.0 中该怎么办?

    ValidateRequest=false 不在.net2.0 中该怎么办? ASP.NET请求验证功能可以给我提供应用程序的保存,避免站点受到XSS的攻击. 但是在一些情况下,我们需要禁用这个功能, ...

  8. ASP.NET4.0中 ValidateRequest=false失效

    ASP.NET请求验证功能可以给我提供应用程序的保存,避免站点受到XSS的攻击. 但是在一些情况下,我们需要禁用这个功能,比如我们需要使用HtmlEditor来让用户输入一些HTML文本,这时候ASP ...

  9. ASP.NET 4.0 页面 ValidateRequest=false 失效不起作用

    当ASP.NET 2.0升级到 ASP.NET 4.0后,页面的 ValidateRequest="false" 不起作用. 因为 ASP.NET 4.0 请求验证被提前到IHtt ...

最新文章

  1. javascript进阶教程第一章案例实战
  2. 赠票 | 相约乌镇!世界互联网大会大数据与AI赋能实体经济论坛
  3. centos7安装mysql 依赖检测失败:_gcc-centos7安装mysqlworkbench依赖检测失败
  4. html5新年网页做给父母的,春节回家,要陪父母做这十件小事
  5. 高精度矢量汉字的一种填充方法_使用PS中的钢笔工具制作一只蝴蝶矢量插画
  6. [03]常用正则表达式
  7. 【控制】《自动控制原理》胡寿松老师-第4章-线性系统的根轨迹法
  8. 一台电脑上同启动两个Tomcat的方式,windows/Linux配置
  9. Python(12)-while语句+赋值运算符号+转义字符
  10. Cocos2d-x windows + vs2010 配置图文详解
  11. 剑指offer七:两个链表的第一个公共结点
  12. C#初学者教程系列19:Winform应用程序
  13. React 引入阿里矢量图标方法
  14. 重新回归最初始的51单片机,跟我一起学单片机吧(内含单片机驱动、烧录软件、程序开发软件的安装和使用)
  15. 使用Swagger生成 API 文档(go语言示例)
  16. (Arxiv-2021)掩码自编码器是可扩展的视觉学习者
  17. 《Python 数据科学实践指南》读书笔记
  18. 融入城市路网的乡村道路问题及对策
  19. nrm 安装和 nrm命令
  20. 《数学巴士》使用指南

热门文章

  1. Access数据库切换到窗体视图就卡死
  2. Mac突然没有声音但是重启后可以恢复
  3. 广东海洋大学计算机考研,广东海洋大学考研难吗?一般要什么水平才可以进入?...
  4. VR技术·上|有关VR的“灵魂拷问”
  5. 我的AI不可能这么傻:深度学习的致命弱点
  6. [转]Ikariam 新手攻略
  7. 『天涯杂谈』语不惊人死不休——2004年最一针见血的500句话 (401...)
  8. 项目成本计算:活动成本和资源成本
  9. 自定义百度地图style样式
  10. 位运算卷积(FWT)