先看如下 web.config 的代码:

<system.web> 
    <compilation debug="true" targetFramework="4.0"/> 
    <httpRuntime requestValidationMode="2.0" /> 
    <pages validateRequest="false"></pages> 
</system.web>

validateRequest 这句我们知道是关闭验证,也就是说提交带标签,比如 <strong>粗体</strong> 这样的值时,ASP.NET 不会报错。

但在 4.0 中还多了一个 requestValidationMode,这是什么意思呢?

requestValidationMode 有两个值:

  • 2.0仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。
  • 4.0 默认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。

由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0。

ASP.NET中的请求验证特性提供了某一等级的保护措施防止XSS攻击,之前版本的ASP.NET的请求验证是默认启动的,但是他紧紧应用于ASP.NET页面中(.aspx文件和.aspx.cs文件)。

而在ASP.NET4中,请求验证默认对所有类型的请求启动,因为它在BeginRequest被调用之前启动,结果就是对所有资源的请求都要经过请求验证,而不仅仅在.aspx文件和他们的类文件中,甚至包括web service和自定义的httphandler。同样,在自定义httpmodules读取http请求的时候,同样要经过请求验证。

上述原因引发的最终结果就是在ASP.NET4中会引发请求错误,例如检测到有潜在危险的Request.Form值等等,为了解决这个问题,可以通过将验证模式设置为ASP.NET之前的版本。具体步骤是在web.config中加入以下配置:

<httpRuntime requestValidationMode=”2.0″ />

设置了请求模式后,再设置

<system.web>
<pages validaterequest=”false”/>
</system.web>

MVC框架中,在控制方法前加入:

[ValidateInput(false)]属性。

解决“检测到有潜在危险的Request.Form值”的更多相关文章

  1. WebAPI.请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式 从客户端xx中检测到有潜在危险的Request.Form值

    事故现场 报错"从客户端 中检测到有潜在危险的Request.Form值" //后台代码 namespace Test { [RoutePrefix("TestClass ...

  2. 客户端向服务端传送特殊字符解决方法(检测到有潜在危险的 Request.Form 值)

    当客户端向服务端传输特殊字符时报错,错误信息如下图:

  3. 从客户端中检测到有潜在危险的 request.form值[解决方法]

    当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法:问题原因:由于在asp.net中,Requ ...

  4. MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法

    从客户端(Content="<EM ><STRONG ><U >这是测试这...")中检测到有潜在危险的Request.Form 值. 说明:  ...

  5. 从客户端中检测到有潜在危险的Request.Form值的解决方法

    描述:从客户端中检测到有潜在危险的Request.Form值的解决方法asp.net 2.0 通常解决办法将.aspx文件中的page项添加ValidateRequest="false&qu ...

  6. 从客户端中检测到有潜在危险的Request.Form值 的解决方法

    在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" .asp.net中的请求验证特性提供了某一等级的保护措施防止X ...

  7. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

  8. ueditor 添加微软雅黑字体 异常“从客户端中检测到有潜在危险的 request.form值”,解决

    使用ueditor往数据库添加文本内容时,如果字体有css样式, <,>," 这些字符会导致报出异常信息:从客户端中检测到有潜在危险的 request.form值 因为这些字符有 ...

  9. 从客户端中检测到有潜在危险的Request.Form值的解决办法

    http://www.pageadmin.net/article/20141016/935.html 如果你网站iis服务器asp.net采用了4.0的版本,则默认会阻止客户端的html内容提交,提交 ...

随机推荐

  1. Session过期后自动跳转到登录页面的实例代码

    1.在项目的web.xml文件中添加如下代码: ? 1 2 3 4 <!--添加Session监听器--> <listener> <listener-class> ...

  2. c#系统中类的方法 Console、Object,ToolStripDropDownItem,string

    一.Console 1.System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中. int num; num = Conver ...

  3. 操作数组可以通过Array这个类来操作(不需要考虑数组的类型!!!)

    这段代码通过Array这个类,把值取出来,存到collection里,不需要考虑数组的类型

  4. 第八周课上测试ch03

    测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序"week04学号.c"编译成汇编代码 int g(int x){ return ...

  5. 伪造堆块绕过unlink检查(ctf-QiangWangCup-2015-shellman)

    目录 堆溢出点 伪造空闲堆块 释放时重写指向伪造堆块的指针 如何利用 参考资料 堆溢出点 图1           堆溢出点 在edit函数中,没有对输入的长度和原来的长度做判断. 伪造空闲堆块 正常 ...

  6. ubuntu开机自动加载iptables配置(转)

    原文:http://www.xuebuyuan.com/730127.html iptables的使用参见http://wiki.ubuntu.org.cn/IptablesHowTo iptable ...

  7. 《OVN Logical Flows and ovn-trace》翻译

    在本篇文章中,我将解释什么是Logical Flow以及如何使用ovn-trace去更好地理解它们.同时,我也会用一些例子来解释,为什么使用Logical Flow这种抽象模型能让新特性的添加变得出乎 ...

  8. Object-Detection中常用的概念解析

    常用的Region Proposal Selective Search Edge Boxes Softmax-loss softmax-loss层和softmax层计算大致是相同的,softmax是一 ...

  9. uib-datepicker-popup 日期不可输入 只可以选择 :readonly="true"

    <div name="{{property.name}}" style="display: flex" ng-switch-when="date ...

  10. 脱离JVM? Hadoop生态圈的挣扎与演化

    本文由知乎<大数据应用与实践>专栏 李呈祥授权发布,版权所有归作者,转载请联系作者! 新世纪以来,互联网及个人终端的普及,传统行业的信息化及物联网的发展等产业变化产生了大量的数据,远远超出 ...