diff options
author | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 20:31:27 +0000 |
---|---|---|
committer | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 20:31:27 +0000 |
commit | 5000c1136e26abd74f6fe3ea94604b0a0f3056d4 (patch) | |
tree | 6a692a0b130f3fc2689a296024fbe8936ff89cbe /net | |
parent | 6ab35fceaf75031861f5f4ce000976b1e27b6c99 (diff) | |
download | chromium_src-5000c1136e26abd74f6fe3ea94604b0a0f3056d4.zip chromium_src-5000c1136e26abd74f6fe3ea94604b0a0f3056d4.tar.gz chromium_src-5000c1136e26abd74f6fe3ea94604b0a0f3056d4.tar.bz2 |
Elide proxy authentication headers
The change prevent the data reduction proxy's authentication
headers from being exposed in net logs and dev tools.
BUG=179382
Review URL: https://codereview.chromium.org/149703005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248566 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/http/http_request_headers.cc | 21 | ||||
-rw-r--r-- | net/http/http_response_headers.cc | 16 |
2 files changed, 30 insertions, 7 deletions
diff --git a/net/http/http_request_headers.cc b/net/http/http_request_headers.cc index bf557df..8c9c428 100644 --- a/net/http/http_request_headers.cc +++ b/net/http/http_request_headers.cc @@ -11,6 +11,18 @@ #include "base/values.h" #include "net/http/http_util.h" +namespace { + +bool ShouldShowHttpHeaderValue(const std::string& header_name) { +#if defined(SPDY_PROXY_AUTH_ORIGIN) + if (header_name == "Proxy-Authorization") + return false; +#endif + return true; +} + +} // namespace + namespace net { const char HttpRequestHeaders::kGetMethod[] = "GET"; @@ -191,10 +203,11 @@ base::Value* HttpRequestHeaders::NetLogCallback( base::ListValue* headers = new base::ListValue(); for (HeaderVector::const_iterator it = headers_.begin(); it != headers_.end(); ++it) { - headers->Append( - new base::StringValue(base::StringPrintf("%s: %s", - it->key.c_str(), - it->value.c_str()))); + headers->Append(new base::StringValue( + base::StringPrintf("%s: %s", + it->key.c_str(), + (ShouldShowHttpHeaderValue(it->key) ? + it->value.c_str() : "[elided]")))); } dict->Set("headers", headers); return dict; diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc index 52bdfd7..88017d0 100644 --- a/net/http/http_response_headers.cc +++ b/net/http/http_response_headers.cc @@ -113,6 +113,14 @@ void CheckDoesNotHaveEmbededNulls(const std::string& str) { CHECK(str.find('\0') == std::string::npos); } +bool ShouldShowHttpHeaderValue(const std::string& header_name) { +#if defined(SPDY_PROXY_AUTH_ORIGIN) + if (header_name == "Proxy-Authenticate") + return false; +#endif + return true; +} + } // namespace const char HttpResponseHeaders::kContentRange[] = "Content-Range"; @@ -1311,9 +1319,11 @@ base::Value* HttpResponseHeaders::NetLogCallback( std::string value; while (EnumerateHeaderLines(&iterator, &name, &value)) { headers->Append( - new base::StringValue(base::StringPrintf("%s: %s", - name.c_str(), - value.c_str()))); + new base::StringValue( + base::StringPrintf("%s: %s", + name.c_str(), + (ShouldShowHttpHeaderValue(name) ? + value.c_str() : "[elided]")))); } dict->Set("headers", headers); return dict; |