summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorbengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 20:31:27 +0000
committerbengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-03 20:31:27 +0000
commit5000c1136e26abd74f6fe3ea94604b0a0f3056d4 (patch)
tree6a692a0b130f3fc2689a296024fbe8936ff89cbe /net
parent6ab35fceaf75031861f5f4ce000976b1e27b6c99 (diff)
downloadchromium_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.cc21
-rw-r--r--net/http/http_response_headers.cc16
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;