访问日志中的奇怪请求会导致IllegalArgumentException

时间:2017-10-12 08:41:35

标签: java tomcat logging tomcat8

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

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

  

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

或者:

  

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

如果我查看访问日志,我会看到请求产生这些异常的网址如下:

  

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

或:

  

" GET null null" 400

我是否正确识别导致异常被抛出的请求?

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

普通浏览器甚至不允许客户输入其中包含空格的网址。看来这些请求确实有空格。

感谢。

1 个答案:

答案 0 :(得分:3)

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