使用VS2010开发WEB系统时,ASP.NET请求验证功能可以为我们自动辨别来自客户端提交的数据,避免站点受到XSS的攻击。但是在一些特殊情况下,比如我们使用富文本编辑器让用户输入一篇新闻,新闻内容包括文字,图片等,还有排版格式等,当客户端将文本内容提交给服务器时,服务器如果辨识出文本中包含有一些不被允许的特殊字符或者标签,将阻止内容的提交。但是这部分内容是用户的“合法输入内容”,这时候的请求验证势必是多余的。所以为了应对这种问题,我们可以采用以下处理方式。
第一种情况:WEB应用程序开发中
(1)在全局配置文件webconfig中添加配置:<httpRuntime requestValidateMode="2.0">
比如:
<system.web>
< httpRuntime requestValidationMode ="2.0 " />
</system.web>
(2)在包含有富文本编辑器页面上添加属性:ValidateRequest="false"
比如:
<% @ Page ValidateRequest="false" %>
第二种情况:MVC应用程序开发中
(1)在全局配置文件webconfig中添加配置:<httpRuntime requestValidateMode="2.0">
比如:
< system.web>
< httpRuntime requestValidationMode = "2.0 " />
</ system.web>
(2)在包含有富文本编辑器的视图对应的Controll中添加属性:ValidateInput(false)
比如:
[ HttpPost]
[ ValidateInput(false )]
public ActionResult NewsEdit( FormCollection form)
{}
备注:上面的开发环境是VS2010,ASP.NET 4.0,MVC3.0。