zoukankan      html  css  js  c++  java
  • 客户端中检测到有潜在危险的Request.Form 值的处理办法 VS2010 .NET 4.0

    如果您使用的是.NET 4.0(4.0以下应该也可以的),需要在你的Web.config 中,在<system.web>节点下增加:
    <pages validateRequest="false" />
    <httpRuntime requestValidationMode="2.0"/>
    这样就可以了

    从客户端中检测到有潜在危险的 Request.Form 值
    由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错上面的错误。
    解决办法:
    解决方案一:
    在.aspx文件头中加入这句:
    <%@ Page validateRequest="false"   %>
    解决方案二:
    修改web.config文件:

    <configuration> 
    <system.web>
    <pages validateRequest="false" />
    </system.web>
    </configuration>


    因为validateRequest默认值为true。只要设为false即可。
    当然,这样只能是让界面好看一些,要想抵制注入,还得从过滤上做足功夫
    然后,还是有不禁用validateRequest的方法的,如下
    不禁用validateRequest=false。
      正确的做法是在你当前页面添加Page_Error()函数,来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error(),这个异常将会送到Global.asax的Application_Error()来处理,你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数,才会显示这个默认的报错页面呢。
      举例而言,处理这个异常其实只需要很简短的一小段代码就够了。在页面的Code-behind页面中加入这么一段代码:  
    以下是引用片段:

    protected void Page_Error(object sender, EventArgs e)
    {
    Exception ex = Server.GetLastError();
    if (ex is HttpRequestValidationException)
    {
    Response.Write("请您输入合法字符串。");
    Server.ClearError(); // 如果不ClearError()这个异常会继续传到 Application_Error()。
    }
    }



    作者:BuildNewApp
    出处:http://syxchina.cnblogs.comBuildNewApp.com
    本文版权归作者、博客园和百度空间共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则作者会诅咒你的。
    如果您阅读了我的文章并觉得有价值请点击此处,谢谢您的肯定1。
  • 相关阅读:
    10.23继承
    10.22语法 class 类 面向对象概念 类与对象 对象的使用 绑定方法
    10.18
    10.16
    读书笔记-软技能:代码之外的生存指南
    git reset
    阿里云安装samba
    关于svn由于目标计算机积极拒绝,无法连接的解决办法
    yii2简单安装
    指定路径创建中文文件名并存入内容
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197339.html
Copyright © 2011-2022 走看看