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

the*_*yuv 7 java logging tomcat tomcat8

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

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

[...] INFO [...] org.apache.coyote.http11.AbstractHttp11Processor.process解析HTTP请求标头时出错
注意:将在DEBUG级别记录更多出现的HTTP标头解析错误.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.看来这些请求确实有空格.

谢谢.

ewr*_*ner 3

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