Changeset 474 in code for trunk/server.go
- Timestamp:
- Mar 18, 2021, 12:28:46 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server.go
r473 r474 213 213 } 214 214 215 // Only trust X-Forwarded-* header fieldsif this is a trusted proxy IP215 // Only trust the Forwarded header field if this is a trusted proxy IP 216 216 // to prevent users from spoofing the remote address 217 217 remoteAddr := req.RemoteAddr 218 218 if isProxy { 219 219 forwarded := parseForwarded(req.Header) 220 forwardedHost := req.Header.Get("X-Forwarded-For")221 forwardedPort := req.Header.Get("X-Forwarded-Port")222 220 if forwarded["for"] != "" { 223 221 remoteAddr = forwarded["for"] 224 } else if forwardedHost != "" && forwardedPort != "" {225 remoteAddr = net.JoinHostPort(forwardedHost, forwardedPort)226 222 } 227 223 } … … 233 229 forwarded := h.Get("Forwarded") 234 230 if forwarded == "" { 235 return nil 231 return map[string]string{ 232 "for": h.Get("X-Forwarded-For"), 233 "proto": h.Get("X-Forwarded-Proto"), 234 "host": h.Get("X-Forwarded-Host"), 235 } 236 236 } 237 237 // Hack to easily parse header parameters
Note:
See TracChangeset
for help on using the changeset viewer.