解决方法 :
一般在网上搜只有以下两种处理方式:
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 }