Skip to content

Commit fc3bf6f

Browse files
shigekitwifkak
authored andcommitted
Check not to have TE or Proxy-Authorization in config.ForwardedRequestHeaders (#312)
TE is a hop-by-hop request header and must not be forwarded. Proxy-Authorization can be forwarded per rfc7235#section-4.4 but remove it to mitigate the risk of over-signing.
1 parent 9c34d5e commit fc3bf6f

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

packager/util/config_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,18 @@ func TestForwardedRequestHeadersHaveDisallowedHeader(t *testing.T) {
115115
`))), "ForwardedRequestHeaders must not include request header of via")
116116
}
117117

118+
func TestForwardedRequestHeadersHaveTE(t *testing.T) {
119+
assert.Contains(t, errorFrom(ReadConfig([]byte(`
120+
CertFile = "cert.pem"
121+
KeyFile = "key.pem"
122+
OCSPCache = "/tmp/ocsp"
123+
ForwardedRequestHeaders = ["X-Foo", "X-Bar", "TE"]
124+
[[URLSet]]
125+
[URLSet.Sign]
126+
Domain = "example.com"
127+
`))), "ForwardedRequestHeaders must not include request header of TE")
128+
}
129+
118130
func TestOCSPDirDoesntExist(t *testing.T) {
119131
assert.Contains(t, errorFrom(ReadConfig([]byte(`
120132
CertFile = "cert.pem"

packager/util/http.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ var legacyHeaders = map[string]bool{
4444

4545
// Via is implicitly forwarded and disallowed to be included in
4646
// config.ForwardedRequestHeaders
47+
// TE is a hop-by-hop request header and must not be forwarded.
48+
// Proxy-Authorization can be forwarded per rfc7235#section-4.4 but
49+
// remove it to mitigate the risk of over-signing.
4750
var notForwardedRequestHeader = map[string]bool{
51+
"Proxy-Authorization": true,
52+
"Te": true,
4853
"Via": true,
4954
}
5055

0 commit comments

Comments
 (0)