【问题标题】:Strange requests in access logs lead to IllegalArgumentException访问日志中的奇怪请求导致 IllegalArgumentException
【发布时间】:2018-03-24 02:59:27
【问题描述】:

我正在使用 tomcat8.0.43 作为我的服务器。

查看我的日志时,我偶尔会看到:

[...]INFO[...] org.apache.coyote.http11.AbstractHttp11Processor.process 解析 HTTP 请求标头时出错
注意:HTTP 的进一步出现 标头解析错误将在 DEBUG 级别记录。 java.lang.IllegalArgumentException:在 HTTP协议

或者:

java.lang.IllegalArgumentException:在 请求目标。有效字符在 RFC 7230 和 RFC 中定义 3986

如果我查看我的访问日志,我发现被请求产生这些异常的 url 是这样的:

"GET /scripts/index.php?OPT_Session= null" 400

或:

"GET null null" 400

我在识别导致引发异常的请求方面是否正确?

我可以做些什么来阻止抛出这些异常或限制发出这些请求?

普通浏览器甚至不允许客户端输入带有空格的 url。不过,这些请求中似乎确实有空格。

谢谢。

【问题讨论】:

  • 似乎某种应用程序正在尝试使用他不理解的协议与 tomcat 对话。
  • 对,有什么方法可以阻止这种情况发生并在我的日志中抛出错误?
  • 被防火墙禁止
  • 通过他们的 IP 地址?
  • 任何能准确识别它的东西。

标签: java tomcat logging tomcat8


【解决方案1】:

请求很可能是攻击。如果您正在运行面向 Internet 的 Web 服务器,则必须使用它们。将 Apache 等 Web 服务器放在 Tomcat 前面是很常见的,可能配置了 mod_security (https://modsecurity.org)。此外,您可以使用 fail2ban 或类似的解决方案来根据日志中的错误禁止 IP。但是,根据我最近的经验,攻击者倾向于使用广泛的 IP 地址,因此 fail2ban 可能不是很有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-16
    • 2013-06-24
    • 2018-01-13
    • 2013-10-24
    • 1970-01-01
    • 2014-04-16
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多