A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).

Meta referrer

From WHATWG Wiki
Revision as of 22:50, 25 October 2011 by Abarth (talk | contribs) (→‎Use Cases)
Jump to navigation Jump to search

Overview

This document describes a proposal the "referrer" metadata name. Using the referrer metadata attribute, a document can control the behavior if the Referer HTTP header attached to requests that originate from the document.

Use Cases

An author might wish to control the Referer header omitted by a document for a number of reasons.

Privacy

A social networking site has a profile page for each of its users, and users add hyperlinks from their profile page to their favorite bands. The social networking site might not wish to leak the user's profile URL to the band web sites when other users follow those hyperlinks (because the profile URLs might reveal the identity of the owner of the profile).

Some social networking sites, however, might wish to inform the band web sites that the links originated from the social networking site but not reveal which specific user's profile contained the links.

Security

A web application uses HTTPS and a URL-based session identifier. The web application might wish to link to HTTPS resources on other web sites without leaking the user's session identifier in the URL.

Trackback

A blog hosted over HTTPS might wish to link to a blog hosted over HTTP and receive trackback links.

Specification

Syntax

Keyword: referrer

The referrer metadata attribute can have one of four values:

  • never
  • always
  • origin
  • default

Let referrer-policy be the value of the content attribute with LWS stripped from the beginning and end of the string and converted to lower case. If referrer-policy is none of the strings listed above, the user agent MUST act as if referrer-policy is the string default.

Semantics

Replace Step 3 of Fetching resources in the HTML standard [HTML] with the following text:

Let the referrer-header-value be the document's current address of document.

Remove any <fragment> component from the referrer-header-value.

If the origin of the appropriate Document is not a scheme/host/port tuple, then replace the referrer-header-value with the empty string, regardless of its value.

  • If the referrer-policy is never:
Replace the referrer-header-value with the empty string, regardless of its value.
  • If the referrer-policy is default:
Replace the referrer-header-value with the empty string if the <scheme> component of the referrer-header-value represents a protocol that uses transport-layer security and the <scheme> component of the resource being fetched does not.
  • If the referrer-policy is origin:
Replace the referrer-header-value with the ASCII serialization [ORIGIN] of the origin' of the appropriate Document.
  • If the referrer-policy is always:
Do not alter the referrer-header-value. Warning! This might cause https referrers to be sent over the network as part of unencrypted HTTP requests.

In Step 5 of Fetching resources in the HTML standard [HTML], replace the text "For the purposes of the Referer (sic) header, [...]" with the following text:

For the purposes of the Referer (sic) header, use the referrer-header-value are generated in Step 3.

Examples

This meta element instructs the user agent to omit the Referer header in all HTTP requests that originate from the document containing the element:

<meta name="referrer" content="never">

This meta element instructs the user agent to include the document's origin in the Referer header rather than the full URL of the document:

<meta name="referrer" content="origin">