首页
社区
课程
招聘
从客户端中检测到有潜在危险的Request.Form值的处理办法
发表于: 2015-6-26 08:28 1882

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

2015-6-26 08:28
1882
新闻链接:http://www.2cto.com/Article/201506/409607.html
新闻时间:2015-06-20
新闻正文:
一些用户在使用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" %>
安全提示

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

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//