Skip to content

Commit 90d2785

Browse files
committed
Sanitize log entries in logging package
1 parent b62f4d1 commit 90d2785

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

logging/handler.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"net/http"
66
"os"
77
"strconv"
8+
"strings"
89
"time"
910

1011
"github.com/sirupsen/logrus"
@@ -78,7 +79,7 @@ func (l *LoggerHandler) writeEntry(w ResponseLogger, r *http.Request, t time.Tim
7879
uri = r.Host
7980
}
8081
if uri == "" {
81-
uri = r.URL.RequestURI()
82+
uri = sanitizeLogEntry(r.URL.RequestURI())
8283
}
8384

8485
status := w.StatusCode()
@@ -96,8 +97,8 @@ func (l *LoggerHandler) writeEntry(w ResponseLogger, r *http.Request, t time.Tim
9697
"protocol": r.Proto,
9798
"status": status,
9899
"size": w.Size(),
99-
"referer": r.Referer(),
100-
"user-agent": r.UserAgent(),
100+
"referer": sanitizeLogEntry(r.Referer()),
101+
"user-agent": sanitizeLogEntry(r.UserAgent()),
101102
}
102103

103104
for k, v := range w.Fields() {
@@ -117,3 +118,8 @@ func (l *LoggerHandler) writeEntry(w ResponseLogger, r *http.Request, t time.Tim
117118
l.logger.WithFields(fields).Error()
118119
}
119120
}
121+
122+
func sanitizeLogEntry(s string) string {
123+
escaped := strings.Replace(s, "\n", "", -1)
124+
return strings.Replace(escaped, "\r", "", -1)
125+
}

0 commit comments

Comments
 (0)