我编了一个文章系统,在上传文章时,如果文章内容中有html代码或方括号的时候,就会“测到有潜在危险的 Request.Form 值”不准上传,但在使用中有时需要上传html代码,请问如何解除?提示“通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证”请问改如何禁用请求验证?详细的错误信息如下:
“/rfid”应用程序中的服务器错误。
--------------------------------------------------------------------------------从客户端(TB_Content="... 分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 异常详细信息: System.Web.HttpRequestValidationException: 从客户端(TB_Content="... 分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[HttpRequestValidationException (0x80004005): 从客户端(TB_Content="...
分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。]
System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +240
System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +99
System.Web.HttpRequest.get_Form() +121
System.Web.UI.Page.GetCollectionBasedOnMethod() +70
System.Web.UI.Page.DeterminePostBackMode() +128
System.Web.UI.Page.ProcessRequestMain() +2112
System.Web.UI.Page.ProcessRequest() +217
System.Web.UI.Page.ProcessRequest(HttpContext context) +18
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
“/rfid”应用程序中的服务器错误。
--------------------------------------------------------------------------------从客户端(TB_Content="... 分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 异常详细信息: System.Web.HttpRequestValidationException: 从客户端(TB_Content="... 分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[HttpRequestValidationException (0x80004005): 从客户端(TB_Content="...
分析师杰夫•伍兹说,RFID市场正朝真...")中检测到有潜在危险的 Request.Form 值。]
System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +240
System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +99
System.Web.HttpRequest.get_Form() +121
System.Web.UI.Page.GetCollectionBasedOnMethod() +70
System.Web.UI.Page.DeterminePostBackMode() +128
System.Web.UI.Page.ProcessRequestMain() +2112
System.Web.UI.Page.ProcessRequest() +217
System.Web.UI.Page.ProcessRequest(HttpContext context) +18
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
<@Page指令中加一条
validateRequest="false"
打开aspx文件,第一行应该类似
<%@ Page language="c#" Codebehind="background.aspx.cs" AutoEventWireup="false" Inherits="_0261b49.background" %>
在其中添加一个validateRequest="false"
变成
<%@ Page language="c#" Codebehind="background.aspx.cs" AutoEventWireup="false" Inherits="_0261b49.background" validateRequest="false" %>
的样子就可以了
第一种是在web.config之中加上validateRequest="false",这样可以对整个站点实现设置,使得所有表单提交都支持HTML;缺点:增加了在网站外的恶意攻击
第二中是在*.ASPX的顶部使用validateRequest="false",只对本页有效