From 4d7502a4bee1ede7f4279d4dff8ae7d8664084fb Mon Sep 17 00:00:00 2001 From: Trong Huu Nguyen Date: Thu, 25 Aug 2022 22:27:12 +0200 Subject: [PATCH] refactor(middleware/logentry): strip query and fragment from referer logs --- pkg/middleware/logentry.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/middleware/logentry.go b/pkg/middleware/logentry.go index 81cf1eb..ad76a52 100644 --- a/pkg/middleware/logentry.go +++ b/pkg/middleware/logentry.go @@ -3,6 +3,7 @@ package middleware import ( "fmt" "net/http" + "net/url" "strings" "time" @@ -70,13 +71,20 @@ type requestLoggerEntry struct { } func (l *requestLoggerEntry) WithRequestLogFields(r *http.Request) *log.Entry { + referer := r.Referer() + refererUrl, err := url.Parse(referer) + if err == nil { + refererUrl.RawQuery = "" + referer = refererUrl.String() + } + fields := log.Fields{ "request_cookies": nonEmptyRequestCookies(r), "request_host": r.Host, "request_method": r.Method, "request_path": r.URL.Path, "request_protocol": r.Proto, - "request_referer": r.Referer(), + "request_referer": referer, "request_user_agent": r.UserAgent(), }