ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险 Request.QueryString 的错误消息

摘要:ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险Request.QueryString的错误消息

微软的asp.net网页都会默认进行Request Validation,但若是想规避这样的内建行为。(建议仍要有其他的方法来防范XSS攻击)

通常我们可以在.aspx中的Page Tag设定:

?

或是直接对整个站台设定Web.Config中??下设定全域的


不过,假如你现在在ASP.NET 4.0 的环境下的话,就算进行上述的设定,可能仍会出现验证失败的消息(潜在危险Request.QueryString的错误消息)

因为ASP.NET4.0与2.0版本在请求验证的定义上已经有所不同:

ASP.NET Request Validation

请求验证是ASP.NET提供来保护XSS攻击的一项功能

在先前的ASP.NET(ASP.NET 2.0)网页,都是默认会进行网页请求的请求验证

仅会针对.aspx以及他们的class文件进行验证

不过到了ASP.NET 4.0,请求验证范围扩大到所有的请求

因为从BeginRequest阶段就开始了HttpRequest

因此在这个期间任何的资源要求都会进行请求验证

而非网页文件(.aspx)而已,还包含WebService调用以及自订的http Handlers,都会去验证http请求的内容

因此在ASP.NET 4.0下,可能在非网页请求的情况下,仍会发生请求验证错误的消息

这时为了避免这样的问题,一样在Web.Config中?下加入下列语句

这样就可以让请求验证只焦点在.aspx网页上了。

其他关于ASP.NET 4.0 请求验证的应用方法:Jimmy的博客

原文:大专栏  ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险 Request.QueryString 的错误消息

原文地址:https://www.cnblogs.com/chinatrump/p/11473879.html

时间: 2024-10-08 10:39:33

ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险 Request.QueryString 的错误消息的相关文章

.Net4.0 ashx页面报错:检测到有潜在危险的Request.Form值(转)

原地址:http://zzhi191.blog.163.com/blog/static/1350849520111116518067/ web开发中难免要多到ajax技术. asp.net中我们处理ajax后台页面有人喜欢用aspx页面,也有人喜欢用ashx页面,相比后者处理速度更快. 但是当你的环境是 .NET 4.0,而 ajax 中提交的参数正好有特殊字符时,比如 name=<head> 这时就会报错:检测到有潜在危险的 Request.Form 值 这时我们需要修改web.config

Asp.net mvc3的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决

Asp.net mvc3的“从客户端(content_v=\",<p>\n\t<imgalt=\"\" src...\")中检测到有潜在危险的Request.Form 值”解决 在三个地方修改 1.     在Controller调用的方法上添加[ValidateInput(false)] [ValidateInput(false)] ublic ActionResult EventSave() 2.在对应的asp.net web页面上加上Vali

.net 4.0 ValidateRequest=&quot;false&quot; 无效

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

&lt;pages validateRequest=&quot;false&quot;/&gt;在.net4.0中无效的问题

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

ASP.NET 4.0的ClientIDMode属性

时光流逝,我们心爱的ASP.NET也步入了4.0的时代,微软在ASP.NET 4.0中对很多特性做了修改.比如我将要讨论的控件ID机制就是其中之一. 在ASP.NET 4.0之前我们总是要为控件的ClientID头疼,比如明明一个叫lblName的Label放在一个叫做grd的GridView里面后,在页面上改Label的ID就变成了诸如grd_clt02_lblName的一长串字符串,如果我们在前台想在使用JS的时候找到该Label,我们不得不用到C#脚本来获得该Label在前台的确切ID,诸

ASP.NET 2.0 异步页面原理浅析 [1]

与 ASP.NET 1.0 相比,ASP.NET 2.0 的各方面改进可以说是非常巨大的.但就其实现层面来说,最大的增强莫过于提供了对异步页面的支持.通过此机制,编写良好的页面可以将数据库.WebService 调用等慢速操作,对网站吞吐能力的影响降到最低,并极大的改善网站的平均页面响应速度.本文将从使用和实现两个层面,简单的剖析这一强大机制的原理,以便读者能够更好的应用这一机制.      对一个网页请求的生命周期来说,首先是 Web 服务器收到客户端 HTTP 请求,将请求转交给 ASP.N

ASP.NET 4.0 来了

伴随着VS2010的公开测试,ASP.NET4.0也进入了我们的视线.ASP.NET4.0究竟给我们带来了什么,将在哪些方面提高我们的生产力? 在何时你需要使用ASP.NET4.0开发你的网站程序? 需要更严格的遵守Web标准: 需要更流畅的Web Form开发方式: 需要更好的搜索引擎优化: 需要后知后觉的纠正一些不够优良的设计,这些设计甚至可能是在ASP.NET 1.0发布之前就存在的: 需要将现有的功能重新改造为支持server farm或跨application domains: 需要将

Log4Net异常日志记录在asp.net mvc3.0的应用

前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段. 用户可以从http://logging.apache.org/log4net/下载log4net的源代码.解压软件包后,在解压的src目录下将log4net.sln载入Visual

ASP.NET 4.0请求验证报错

修改方法如下: 在web.config方法中的httpRuntime标记中添加 requestValidationMode="2.0" <system.web>     <httpRuntime  />     <pages validateRequest="false"></pages></system.web>  </system.web> 深入: validateRequest="