夏穆SUMMUR 发表于 2015-7-26 23:25:53

检测到有潜在危险的Request.Form值以及ValidateRequest不生效问题

asp.net从客户端中检测到有潜在危险的Request.Form值问题许多朋友都遇到过,夏穆自己也碰到许多次。说实话这个问题比较头疼。一方面这是出于安全考虑不能轻易取消设置,另一方面有些功能又不得不允许传递一些危险值。
在此仅提供解决方法,至于安全和功能的问题大家自己综合考量了。

代码:
//解决方案一
//在.aspx文件头中加入这句:
<%@ Page validateRequest="false"%>

//解决方案二:
//修改web.config文件:
<configuration>
<system.web>
    <pages validateRequest="false" />
</system.web>
</configuration>


也许有些朋友发现添加了validateRequest="false"依然没有起作用。那是因为4.0已经默认了开启,以上设置仅对低于ASP.NET4.0的程序有效。在ASP.NET4.0版本上,我们需要更多一行的配置:

在web.config中添加:
<configuration>
    <system.web>
      <httpRuntimerequestValidationMode="2.0" />


另外,对于安全方面考虑,建议使用“HttpContext.Current.Server.HtmlEncode("1230online")”或者自己添加一些过滤。



页: [1]
查看完整版本: 检测到有潜在危险的Request.Form值以及ValidateRequest不生效问题