>From https://wiki.mozilla.org/Privacy/Features/Shortened_HTTP_Referer_header

> 4. Requirements
>
> [a] Test plan must be created and implemented
> [b] Use cases must be clearly outlined and it must
>     be clear how the feature addresses each.
> [c] Initially, Phase 1 (user-set) should not change
>     default behavior until user initiates change.
> [d] Default referer behavior for sites should not
>     change until sites activate attenuation features.

Should these requirements be updated?

I think we should try to jump straight to making origin-only Referer headers 
the default by removing requirements [c] and [d], in the interests of 
expediency.

As I noted in the <meta referrer> bug [1], the lack of <meta referer=origin> 
support looks like a major performance issue, especially on very popular sites 
like google.com and facebook.com that currently use a redirect to limit the 
Referer to the origin in Firefox, but which link directly to the target in 
Chrome.

The spec for <meta referer> seems to be this wiki page:
http://wiki.whatwg.org/wiki/Meta_referrer

I disagree with some aspects of the spec. In particular, I think the spec. 
should explicitly mention that the Referer header should be limited by whatever 
user preferences are in effect. For example, if the user has chosen to set the 
default to "never" then all values must be interpreted as "never". As another 
example, if a browser vendor chooses to set the default to "origin" then 
"default" and "always" should not cause the browser to send path/query/hash in 
the Referer header.

With that out of the way, I propose that Firefox use the following 
interpretation of the values of the <meta referrer> header:

"never" - As specified in the wiki; do not send the Referer header. (This is 
the current behavior of Firefox for HTTPS -> HTTP nagivations.)

"origin" - As specified in the wiki. (This would change Firefox's HTTPS -> HTTP 
behavior to disclose the scheme, host, and port where it currently does not do 
so, and it would change Firefox's behavior to disclose less in all other cases.)

"default" - For HTTPS -> HTTP navigations, do not send any Referer header; 
otherwise, treat like "origin". (This discloses less information in the Referer 
header than what is specified in the wiki.)

"always" - Same as "origin". (This discloses less information in the Referer 
header than what the wiki recommends.)

any other value (or missing): Same as "default", which is what the wiki 
specifies.

IMPORTANT NOTE: In case it isn't clear, my proposal is suggesting that we 
shorten our default Referer header by default to sends only the origin (e.g. 
http://example.org:123/ instead of http://example.org:123/path?query#fragment), 
and that we allow sites to opt in to sending the origin for HTTPS -> HTTP 
navigations.

I can foresee the argument that we shouldn't interpret "always" or "default" 
differently than what the wiki specifies, because a site could always use the 
query parameters and redirects trick to disclose the information we are trying 
to prevent disclosure of. That is true, but in order to use that redirect 
trick, they would have to suffer a performance penalty. I think that is OK, as 
long as we are able to allow sites that do something reasonably 
privacy-preserving (stripping the path, query, and fragment) to avoid that 
penalty. Also note that Google's and Facebook's use of the redirect shows that 
prohibiting the sending of the Referer header for HTTPS -> HTTP cases for 
values "origin" and "always" is not really a way to enforce privacy-preserving 
behavior. The only way to really enforce "completely" privacy-preseving 
behavior would be to set the default to "never", which is likely to break too 
much stuff. (And, regardless, strengthening the default value to "never" can be 
do
 ne later, after we've experimented with limiting Referer to just the origin.)

Obviously, we'd have to do a lot of measurements to see what, if anything would 
break with this new default policy. But, I think spending effort on that 
testing would be much better than spending effort on UI for new values of the 
Referer prefs.

Thoughts?

Cheers,
Brian

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=704320
_______________________________________________
dev-tech-network mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-network

Reply via email to