【问题标题】:How to validate Request.RawUrl in Application_BeginRequest event in Global.asax.cs file?如何在 Global.asax.cs 文件的 Application_BeginRequest 事件中验证 Request.RawUrl?
【发布时间】:2013-11-01 16:20:30
【问题描述】:

一些机器人正在请求像 www.example.com/test-</p><p>they-are-angry... 这样的 URL,它正在我的 asp.net 应用程序中创建 A potentially dangerous exception

我需要验证Global.asax.cs 文件的Application_BeginRequest 事件中的HttpContext.Current.Request.RawUrl,如果它无效,我将重定向到另一个错误页面。

我不想设置 validateRequest="false"requestValidationMode="2.0",但如果 R​​equest.RawUrl 无效,我想重定向到特定的错误页面。

如何做到这一点?是否有任何 Asp.Net 预定义的方法来验证此 URL?

非常感谢任何帮助!

【问题讨论】:

    标签: asp.net httpcontext request-validation rawurl


    【解决方案1】:

    如果您只想重定向到错误页面,您可以简单地配置 customErrors 或实施existing postMSDN 中详述的全局错误处理程序。

    但是,如果您想将验证延迟到以后,例如 Application_BeginRequest,您可以禁用请求验证并显式调用它,如 Imran's blog 中所述:

    1。设置 requestValidationMode="2.0"

    2。调用 Request.ValidateInput()

    protected void Application_BeginRequest()
    {
        Request.ValidateInput();
        var q = Request.QueryString;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-11
      • 2020-03-15
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 2018-05-09
      • 2015-10-20
      • 1970-01-01
      相关资源
      最近更新 更多