且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

解决asp.net中“从客户端(......)中检测到有潜在危险的 Request.Form 值。”错误

更新时间:2022-09-15 22:09:27

从客户端(Free1="<P>&lt;%@ Page Valid...")中检测到有潜在危险的 Request.Form 值。

说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 

异常详细信息: System.Web.HttpRequestValidationException: 从客户端(Free1="<P>&lt;%@ Page Valid...")中检测到有潜在危险的 Request.Form 值。

错误分析:以上为系统报错信息原因是在 ASP.NET 1.1 中,@Page 指令上的 ValidateRequest 属性被打开后,将检查以确定用户没有在查询字符串、Cookie 或表单域中发送有潜在危险性的 HTML 标记。如果检测到这种情况,将引发异常并中止该请求。该属性默认情况下是打开的;您无需进行任何操作就可以得到保护。如果您想允许 HTML 标记通过,必须主动禁用该属性。

 

解决方法:

方案一:

将.aspx文件中的page项添加ValidateRequest="false" ,如下:

  1. <%@ Page ValidateRequest="false"  Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>  

方案二:

修改web.config配置文件

  1. <system.web>  
  2.     <pages validateRequest="false" >    
  3.     </pages>    
  4. </system.web>  

总结:

这里推荐使用方案一,因为方案一只修改test.aspx这一个页面;而如果使用方案二的话,将是整个解决方案都变成ValidateRequest="false" 。




本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2010/03/25/2297146.html,如需转载请自行联系原作者