lt :<"中检测到有潜在危险的 RequestForm 值!

来源:互联网  时间:2016/7/25 2:23:51

关于网友提出的“lt :<"中检测到有潜在危险的 RequestForm 值!”问题疑问,本网通过在网上对“lt :<"中检测到有潜在危险的 RequestForm 值!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:lt :<"中检测到有潜在危险的 RequestForm 值!
描述:

从客户端(ctl00$ContentPlaceHolder1$RParameter$ctl04$ParameterValueSelect1$HF1="...d864d0b27c
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 
异常详细信息: System.Web.HttpRequestValidationException: 从客户端(ctl00$ContentPlaceHolder1$RParameter$ctl04$ParameterValueSelect1$HF1="...d864d0b27c
源错误: 
[没有相关的源行]
 
源文件: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\36f4fd14\1101a96c\App_Web_qw4d8xwz.26.cs    行: 0 
堆栈跟踪: 
[HttpRequestValidationException (0x80004005): 从客户端(ctl00$ContentPlaceHolder1$RParameter$ctl04$ParameterValueSelect1$HF1="...d864d0b27c
   System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +3308446
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +108
   System.Web.HttpRequest.get_Form() +119
   System.Web.HttpRequest.get_HasForm() +57
   System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +2070529
   System.Web.UI.Page.DeterminePostBackMode() +63
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6978
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
   System.Web.UI.Page.ProcessRequest() +86
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.manage_productedit_aspx.ProcessRequest(HttpContext context) in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\36f4fd14\1101a96c\App_Web_qw4d8xwz.26.cs:0
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +303
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.832; ASP.NET 版本:2.0.50727.832 
网上有2种解决方案,但是都是临时的,不是很好,因为我想充分考虑防止脚本注入,在这样的情况下,如何解决!


解决方案1:

private string ReplaceDanger(string str)
    {
        str = str.Replace(">", ">");
        str = str.Replace("<", "<");
        char ch;
        ch = (char)32;
        str = str.Replace(ch.ToString(), " ");
        ch = (char)34;
        str = str.Replace(ch.ToString(), """);
        ch = (char)39;
        str = str.Replace(ch.ToString(), "'");
        ch = (char)13;
        str = str.Replace(ch.ToString(), " ");
        ch = (char)10;
        str = str.Replace(ch.ToString(), "
");
        return str;
    }

使用的时候加这个函数就OK了

上一篇CodeBehind和Codefile 区别
下一篇关于多语言资源文件的两种使用方法,你的网站使用了哪种方式?
明星图片
相关文章
《lt :<"中检测到有潜在危险的 RequestForm 值!》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)