【发布时间】:2016-06-03 10:04:49
【问题描述】:
快速背景:使用来自 HAProxy 的访问日志并使用 grok 解析它。 HAProxy 的 %{+Q}r 日志变量打印 "<http verb> <uri> <HTTP version>" 我们正在使用
"%{WORD:method} %{URIPATHPARAM:url} HTTP/%{NUMBER:httpversion}"
这对大多数请求都很好,但是当我们遇到各种扫描器试图通过在 URL 中发送垃圾来进行注入攻击等时,grok 无法解析 uri。以下是一些导致此 grok 过滤器崩溃的示例:
"GET /index.html?14068'#22><bla> HTTP/1.1"
"GET /index.html?fName=\Windows\system.ini%00&lName=&guestEmail= HTTP/1.1"
任何人都可以想出一个解决方案,它可以更好地解析无效的 URI 或至少不会崩溃,即尽可能多地解析 URL 并丢弃垃圾?
【问题讨论】:
-
有趣的是,你的第一个例子并没有打破我的认知,但我明白你的意思