【问题标题】:What HTTP code should be sent in response to a suspected malicious request应发送什么 HTTP 代码以响应可疑的恶意请求
【发布时间】:2013-01-22 13:41:48
【问题描述】:

假设我发现我的 Web 应用程序收到了明显是 SQL 注入攻击或类似攻击的请求。我写了一个简短的测试来检查“顽皮”字符串的请求变量。如果我找到了,我应该用什么代码回复?

我正在考虑返回“403 Forbidden”并且没有内容,但我不确定。

【问题讨论】:

  • 400 bad request 也不错。

标签: http-headers


【解决方案1】:

我认为403 Forbidden 意味着不应访问该资源。

因此我会改用400 Bad Request。毕竟,只要用户提出合法请求,他们就可以访问该页面。

【讨论】:

    【解决方案2】:

    http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
    对我来说,“400:错误请求”似乎是最合乎逻辑的选择。

    编辑: 也许这更多地取决于上下文。

    如果确实无法继续执行脚本,请返回 400 或 404 代码。

    在所有其他情况下,当您的代码“检测到”恶意尝试时,不应通知用户(黑客)。您的验证应该是检测无效输入的类型,而不是恶意尝试。

    唯一的例外是暴力攻击(有关如何防止这些攻击的更多信息,请访问Preventing Brute Force Logins on Websites)。

    例如:
    如果您的表单包含用户名文本框,并且用户(黑客)尝试使用某种引用的 SQL 语句登录/注册,则您的验证应自动声明“用户名无效”。

    另一方面,出于登录目的,您应该使用链接中所述的选项保护您的应用程序免受暴力攻击。

    【讨论】:

      【解决方案3】:

      如果您能够识别请求的问题,并且他们正在要求允许的东西,只是以一种偷偷摸摸的方式,您应该能够防止它们造成任何损害并直接处理它们。但是如果请求没有意义,400 Bad Request 可能是最好的选择。

      【讨论】:

        猜你喜欢
        • 2013-01-18
        • 1970-01-01
        • 2013-09-09
        • 2017-03-10
        • 2018-09-20
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        • 1970-01-01
        相关资源
        最近更新 更多