摘要: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