vs2010 中检测到有潜在危险的 Request.Form 值

解决方法 :

一般在网上搜只有以下两种处理方式:

1.在报错的页面前吧<%Page%>标签中增加validateRequest="false"的属性为false 如下所示:

<%@ Page Language="C#" AutoEventWireup="false" ValidateRequest="false" CodeFile="你的页面.vb" Inherits="你的页面" validateRequest="false" %>

2.在wec.config文件中增加节点的配置如下所示:

 <configuration> 
   <system.web> 
   <pages validateRequest="false" /> 
   </system.web> 
   </configuration>

 

以上两种方法虽然可以有效的解决了。但是相对于安全方面来说,还是做的不够,

如果想更好的解决这个问题还是过滤一些特殊的字符串来处理但是

 对于那些通过 明确禁止了这个特性的程序员,自己一定要明白自己在做什么,而且一定要自己手动的检查必须过滤的字符串,否则你的站点很容易引发跨站脚本攻击。

好现在说 一下VS2010项目中遇到 这个问题的解决方法 

其实用之前说的那两种方法也是可以的,但在vs2010中不启作用,主要是因为以上两种方式主要是基于2.0的框架,而vs2010是4.0的框架,如果想让上面两种方式

在VS2010中启作用必增加如上配置

<httpRuntime executionTimeout="3600" maxRequestLength="1048576" requestValidationMode="2.0"/>

 

主要是“requestValidationMode="2.0" 必须 指定是2.0的框架

==========================

继续补充一下在MVC中若遇到 这样的问题解决办法

 为 目标 action方法添加 ValidateInput 特性,代码如下:

 

 [ValidateInput(false)]
2 [HttpPost]
3 public ActionResult Modify(Models.BlogArticle model)
4 {
5        //......
6 }

 

 

 

 

posted on 2013-07-01 16:06  wang_cq  阅读(216)  评论(0编辑  收藏  举报