From efcaae77b553d56a7b5351495fdcca481a594852 Mon Sep 17 00:00:00 2001 From: Anders Pitman Date: Tue, 27 Sep 2022 12:03:18 -0600 Subject: [PATCH] Set Host header to Tunnel.Domain --- http_proxy.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/http_proxy.go b/http_proxy.go index 572c4df..6f6edc6 100644 --- a/http_proxy.go +++ b/http_proxy.go @@ -75,7 +75,10 @@ func proxyRequest(w http.ResponseWriter, r *http.Request, tunnel Tunnel, httpCli upstreamReq.Header.Set("X-Forwarded-For", xForwardedFor) upstreamReq.Header.Set("Forwarded", fmt.Sprintf("for=%s", remoteHost)) - upstreamReq.Host = fmt.Sprintf("%s:%d", tunnel.ClientAddress, tunnel.ClientPort) + // TODO: This might need to be more generic, but using r.Host. However, + // I think that may have security implications for things like DNS + // rebinding attacks. Not sure. + upstreamReq.Host = tunnel.Domain upstreamRes, err := httpClient.Do(upstreamReq) if err != nil {