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

  • 发布时间:2015-05-05 22:15:33
  • 阅读次数:3408

一些用户在使用ASP.NET作为网站开发语言时,会出现这样一个问题。用户提交表单发表内容时,页面提示:应用程序中的服务器错误,从客户端(某某代码)中检测到有潜在危险的Request.Form值。

原因分析

出现这种错误的原因是微软.NET框架中的Request Validation(请求验证)在起作用。请求验证是ASP.NET的一个很有用的功能,可以自动检测网页文件中是否含有恶意脚本。一般屏蔽的是HTML代码,如<>或Javascript脚本,因为这些脚本会被黑客利用,植入到您的网页中,从而影响以后的访问者。这种攻击行为也被称为XSS(cross site scripting),即跨站脚本攻击。

如何处理

因为朝暮数据的全部服务器都采用ASP.NET 4.5框架,如果您的网站是基于.NET2.0/3.5开发的,可能就会碰到这个问题。您可以选择整站禁用请求验证功能,或者只选择部分页面禁用。

1、在根目录下的web.config文件中,添加如下代码:

<system.web>
  <httpRuntime requestValidationMode="2.0" />
</system.web>

2、如果您希望整站禁用,再进一步添加:

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

3、请求验证功能是为了防止黑客脚本攻击,因此不推荐整站禁用。如果您只是部分页面有添加HTML的需要,也可以只禁用这些页面。我们在这些页面的头部添加:

<@ Page validateRequest="false" %>

安全提示

如果您禁用了请求验证功能,请一定要人工验证用户的输入是否含有恶意脚本。除非您只禁用了部分页面,而且这些页面位于后台,只能管理员访问,黑客无法访问到。

一个简单的人工验证办法是采用在线编辑器,如百度的UEditorCKEditor等,这些编辑器本身就能阻止非法脚本,只允许安全的HTML或Javascript。

【全文完】

< 上一篇:如何证明域名是属于我的? 下一篇:域名、主机、邮局续费协议 >