zoukankan      html  css  js  c++  java
  • 检测到有潜在危险的 Request.Form 值——ValidateRequest的使用

    1、aspx中

    在 Web 应用程序中,要阻止依赖于恶意输入字符串的黑客攻击,约束和验证用户输入是必不可少的。跨站点脚本攻击就是此类攻击的一个示例。

    当请求验证检测到潜在的恶意客户端输入时,会引发此异常来中止请求处理。请求中止能够指示危害您的应用程序安全的企图,例如跨站点脚本攻击。强烈建议让您的应用程序显式地检查与请求中止有关的所有输入。不过,您也可以通过将 @ Page 指令中的 validateRequest 属性设置为 false 来禁用请求验证,如下面的示例所示:

    方法1:

    在.aspx文件头中加入这句:

    <%@ Page validateRequest="false"  %>

    方法2:

    要禁用应用程序的请求验证,必须修改应用程序的 Web.config 文件或创建一个 Web.config 文件,并将 pages 节的 validateRequest 属性设置为 false,如下面的示例所示:

    修改web.config文件:

    <configuration>
        <system.web>
            <pages validateRequest="false" />
        </system.web>
    </configuration>
    因为validateRequest默认值为true。只要设为false即可。


    还有一步是在page中在onerror事件中加入处理:

    protected void Page_Error(object sender, EventArgs e)
        {
            Exception ex = Server.GetLastError();
            if (ex is HttpRequestValidationException)
            {

        Response.Write("请您输入合法字符串。");
                Response.Redirect("error.aspx");
                Server.ClearError();
            }
        }

    2、 ashx中

    方法3:

    web.config里面加上

    <system.web>
        <httpRuntime requestValidationMode="2.0" />
    </system.web>

    因为4.0的验证在HTTP的BeginRequest前启用,因此,请求的验证适用于所有ASP.NET资源,aspx页面,ashx页面,Web服务和一些HTTP处理程序等.

  • 相关阅读:
    谷歌浏览器最新版下载链接
    第二章 算法——程序的灵魂
    第一章:程序设计和C语言
    C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
    面向对象之类的其他方法
    面向对象之反射、包装、(定制)
    PyCharm使用秘籍视频
    re模块(详解正则)
    ATM购物车程序项目规范(更新到高级版)
    音乐脚本
  • 原文地址:https://www.cnblogs.com/uftwkb24/p/9242518.html
Copyright © 2011-2022 走看看