Changeset 345 in code for trunk/server.go
- Timestamp:
- Jun 29, 2020, 4:33:23 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server.go
r344 r345 152 152 return 153 153 } 154 155 isLoopback := false 156 if host, _, err := net.SplitHostPort(req.RemoteAddr); err == nil { 157 if ip := net.ParseIP(host); ip != nil { 158 isLoopback = ip.IsLoopback() 159 } 160 } 161 162 // Only trust X-Forwarded-* header fields if this is a loopback connection, 163 // to prevent users from spoofing the remote address 154 164 remoteAddr := req.RemoteAddr 155 165 forwardedHost := req.Header.Get("X-Forwarded-For") 156 166 forwardedPort := req.Header.Get("X-Forwarded-Port") 157 if forwardedHost != "" && forwardedPort != "" {167 if isLoopback && forwardedHost != "" && forwardedPort != "" { 158 168 remoteAddr = net.JoinHostPort(forwardedHost, forwardedPort) 159 169 } 170 160 171 s.handle(newWebsocketIRCConn(conn), remoteAddr) 161 172 }
Note:
See TracChangeset
for help on using the changeset viewer.