Quick Hintergrund: Verwenden der Zugriffsprotokollierung von HAProxy und Parsing mit Grok. HAProxy der% {+ Q} r log Variable druckt "<http verb> <uri> <HTTP version>"
die wir Parsen verwendenGibt es eine Möglichkeit, URIPATHPARAM zu parsen, wenn die URL ungültige Zeichen enthält
"%{WORD:method} %{URIPATHPARAM:url} HTTP/%{NUMBER:httpversion}"
Dies funktioniert gut für die meisten Anfragen, aber wenn wir treffen mit verschiedenen Arten von Scannern versuchen Injection-Angriffe zu tun usw. durch Junk-Senden in Die URL grok kann das uri nicht analysieren. Hier sind einige Beispiele, die diese grok Filter abstürzen:
"GET /index.html?14068'#22><bla> HTTP/1.1"
"GET /index.html?fName=\Windows\system.ini%00&lName=&guestEmail= HTTP/1.1"
Kann jemand denken Sie an eine Lösung, die vorzugsweise auch ungültige URIs analysieren würde oder zumindest nicht zum Absturz bringen, das heißt zu analysieren, wie viel von der URL wie möglich und Junk verwerfen?
interessant Ihre Das erste Beispiel hat meinen Grok nicht gebrochen, aber ich sehe deinen Punkt –