【问题标题】:HTTP Error 400.0 - Bad Request ASP.NET detected invalid characters in the URLHTTP 错误 400.0 - 错误请求 ASP.NET 在 URL 中检测到无效字符
【发布时间】:2015-11-21 18:35:06
【问题描述】:

我有类似的问题

HTTP Error 400.0 - Bad Request
ASP.NET detected invalid characters in the URL.

...请求以下 URL 时:

http://hunarmandindia.com/(S(4wuduaje2xivjefwffjv5bgq))/Company/recruiter-login.aspx

如果有人对此问题有任何解决方案,请给我解决方案...

【问题讨论】:

    标签: c# asp.net url http-error


    【解决方案1】:

    默认情况下,IIS/ASP.NET 会在 URL 中阻止许多字符,因为它们是有人试图对您的站点执行某些攻击的迹象。您可以禁用或放松这些检查,例如此处所述 (http://dirk.net/2008/06/09/ampersand-the-request-url-in-iis7/),但在您继续执行此操作之前,我首先检查您是否真的需要正在使用的无效字符(可能是与号,尖括号、“脚本”一词等,但如果没有看到相关 URL 就很难分辨),因为放松这些规则显然会使您面临该功能试图阻止的攻击。

    【讨论】:

    • 建议是一样的。在这种情况下,括号是受限制的字符。查看 Scott Hanselman 的这篇博文,了解更多信息以及如何放松验证,请注意,正如我上面所说,这样做会使您面临潜在的攻击 (hanselman.com/blog/…)。理想情况下,如果是我,我更愿意从 URL 中删除括号。看不出您需要它们的任何明显原因。
    • 在您的 web.config 中将 ValidateRequest 设置为 false 会完全禁用此检查,因此最好根据上述文章检查您是否将其放置在正确的位置等。除此之外,正如我在上面多次说过的那样,更简单(和安全)的方法是消除 URL 路由中对括号的需求。这才是这个问题的真正解决方案。
    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 2018-05-30
    • 1970-01-01
    • 2021-06-29
    • 2019-05-10
    • 2015-03-08
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多