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

时间 : 17-03-22 栏目 : Net开发 作者 : 冰镇宝贝321 评论 : 0 点击 : 1,832 次

在 .NET MVC 的项目中有用到百度编辑器的富文本框,然后 提交表单到后台报错:


从客户端(Content="<p>测试</p>")中检测到有潜在危险的 Request.Form 值。


一看就知道是传递的字符串中包含了html 标签,然后服务器检查出来了没有通过,所以需要来做处理。

网上有多例子说 在<pages>标签中加上validateRequest=“false”这个属性就好了,代码如下:


  1. <system.web >  

  2. <pages validateRequest="false" ></pages >   

  3. </system.web >  


但是根本不起作用。。


之后在别的地方看到特别的,针对MVC项目的处理方式不一样。

需要再方法前面 加上[ValidateInput(false)] 过滤掉 用户传递的输入的验证,例子如下:


  1. [HttpPost]  

  2. [ValidateInput(false)]  

  3. public ActionResult Add(User user)  

  4. {  

  5. return View();  

  6. }  


然后发现还是不行,原来自己用的是MVC3.0 ,需要再UI 目录下的web.config  中配置一下, 即在<system.web>中指定验证模式为2.0  ,代码如下:



  1. <system.web >  

  2. <httpRuntime requestValidationMode="2.0" />  

  3. </system.web >  


这是因为3.0的验证模式非常严格,即使加上了[ValidateInput(false)] 也过滤不了。。。所以 才要在web.config 中配置一下。


特别地,如果放在Views 目录下的web.config 中会没有效果的。




除非注明,文章均为( 冰镇宝贝321 )原创,转载请保留链接: https://bkqv5.com/archives/256.html

从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法:等您坐沙发呢!

发表评论




0