strict-origin-when-crossorigin

参照元ポリシー (Web)

[36] 参照元ポリシーは、要求fetch の際に用いる参照元 (リファラー) の値 (URL) を決定する方法を指定するものです。

仕様書

[110] Referrer Policy は、参照元URL の決定方法を規定した仕様書です。 実際の規定は Fetch StandardHTML Standard にも分散しています。

意味

[42] 参照元ポリシー (referrer policy) は、 fetch の際に Referer: ヘッダーの値を決めるアルゴリズムの動作を指定するものです >>30

[37] 次のような理由から、著者参照元を制御したいことがあります。 参照元ポリシーはそのような場合に有用です。

[81] 参照元ポリシーは、次の値です。

value
same
同じ起源の場合の参照元
cross
異なる起源 (非 downgrade) の場合の参照元
down
異なる起源 (downgrade) の場合の参照元
http
[82] Referrer-Policy: ヘッダーリスト要素
meta
<meta name=referrer>
idl
列挙型 ReferrerPolicy >>44
attr
[86] 参照元ポリシー属性 (referrer policy attribute) である列挙型属性 >>85
rel
リンク型window.open
value
(適用箇所)
cross
https:http: 以外
down
https:http:
idl
Request インターフェイス referrerPolicy IDL属性
attr
referrerpolicy 属性 (a, area, img, iframe, link)
rel
rel 属性
value
(大文字小文字の区別)
http
ASCII大文字・小文字不区別
meta
ASCII大文字・小文字不区別
idl
区別あり
attr
ASCII大文字・小文字不区別
rel
ASCII大文字・小文字不区別
value
[45] no-referrer
same
なし >>44
cross
なし >>44
down
なし >>44
http
idl
meta
attr
rel
noreferrer
value
never
same
なし >>44
cross
なし >>44
down
なし >>44
http
×
idl
×
meta
禁止 >>91
attr
× (非妥当)
value
[46] no-referrer-when-downgrade
same
URL全体 >>44
cross
URL全体 >>44
down
なし >>44
http
idl
meta
attr
value
default
same
URL全体
cross
URL全体
down
なし
http
×
idl
×
meta
禁止 >>91
attr
× (非妥当)
value
[48] same-origin
same
URL全体 >>44
cross
なし >>44
down
なし >>44
http
idl
meta
attr
value
[49] origin
same
起源のみ >>44
cross
起源のみ >>44
down
起源のみ >>44
http
idl
meta
attr
value
strict-origin
same
起源のみ >>44
cross
起源のみ >>44
down
なし >>44
http
idl
meta
attr
value
[50] origin-when-cross-origin
same
URL全体 >>44
cross
起源のみ >>44
down
起源のみ >>44
http
idl
meta
attr
value
origin-when-crossorigin
same
URL全体
cross
起源のみ
down
起源のみ
http
×
idl
×
meta
禁止 >>91
attr
× (非妥当)
value
strict-origin-when-cross-origin
same
URL全体 >>44
cross
起源のみ >>44
down
なし >>44
http
idl
meta
attr
value
[51] unsafe-url
same
URL全体 >>44
cross
URL全体 >>44
down
URL全体 >>44
http
idl
meta
attr
value
always
same
URL全体
cross
URL全体
down
URL全体
http
×
idl
×
meta
禁止 >>91
attr
× (非妥当)
value
[52] 空文字列
http
×
idl
meta
×
attr
value
その他
http
×
idl
×
meta
×
attr
× (非妥当)

[77] no-referrer は、要求参照元において、 参照元を送らないことを表すために (URL のかわりの値として) 使われることもあります。

[72] no-referrer-when-downgrade は、 指定がない場合の既定値としても使われます >>44

[74] 空文字列は、その文脈で値が明示されない時に使うべき値に従うことを表します。 そのような値が無い時は、 no-referrer-when-downgrade を表します。 >>44 参照元ポリシー属性非妥当値既定値欠値既定値としても使われます >>85

[71] 指定された値字句の解釈は、 Determine token’s Policy、 すなわち字句ASCII小文字に変換した結果がいずれかの値と一致するかを調べることによります >>70。 廃止された3つの値はそれぞれの新しい値に、空文字列no-referrer へと正規化されます >>70。 いずれとも一致しなければ、空文字列となります >>70

[47] この解釈は、各文脈に応じた処理の後で実行されます。例えば HTTP Referrer-Policy: ヘッダーでは、まず HTTPヘッダーとしての構文解析を行うので、 空文字列や廃止された3つの値はその時点でエラーとなります。

[136] この規定はに廃止され、それぞれの文脈ごとの処理方法が規定されるようになりました。

文脈

[53] 著者は、参照元ポリシーを次の方法で明示できます。

[54] 一時、CSP指令としても指定できましたが、廃止されました。

[69] HTTPリダイレクトでは、応答Referrer-Policy: ヘッダーの値が (あれば) リダイレクト先の要求参照元の決定に使われます。

[43] 環境設定群オブジェクトは、参照元ポリシー (referrer policy) を持ちます。 これは、当該環境設定群オブジェクト要求クライアントとするときに、 原則として用いられるものです。 >>105, >>30

[88] 文書は、参照元ポリシー (referrer policy) を持ちます。 既定値は、空文字列です。 >>87

[107] WorkerGlobalScope は、参照元ポリシー (referrer policy) を持ちます。 既定値は、空文字列です。 >>106

[150] サービスワーカースクリプト資源は、 参照元ポリシー (referrer policy) を持ちます。 既定値は、空文字列です。 >>149

[167] スクリプトfetchオプション群は、 参照元ポリシー (referrer policy) を持ちます HTML Standardスクリプトのfetchで使われます。

[79] 要求は、参照元ポリシー (referrer policy) を持ちます。 値は参照元ポリシー既定値空文字列です。 これは環境設定群オブジェクト参照元ポリシーを上書きしたいときに使います。 >>78

適用対象

[174] HTTPヘッダー Referer:HTTPヘッダー Origin:DOM document.referrer に適用されます。

[13] かつては WebSocket に適用されるのかは明確になっていませんでした。 現在は WebSocketFetch 経由で処理される規定となっているため、 WebSocket にも適用されることが明確になっています。

Referrer-Policy: ヘッダー

[56] Referrer-Policy: HTTPヘッダーは、 当該資源から作成される要求閲覧文脈における参照元ポリシーを指定するものです >>55

[144] Referer: ヘッダーとは違って、 r が2つ入っています。

[57] ヘッダー値は、1つ以上の値のリストです >>55

  1. *
    1. OWS
    2. ,
    3. OWS

[58] 各値は、参照元ポリシーを指定するもの (歴史的な値以外) で、 ASCII大文字・小文字不区別です >>55

[68] 値を複数指定すると、Webブラウザーは、対応している最後のものを使います。 新しい値が追加されて未対応の Webブラウザーが存在する時は、 新しい値を後の方に指定すると、新旧どちらの Webブラウザーにも適当な指定を与えられます。

CSS などと同じです。

[59] 構文解析は、応答について次 (Parse a referrer policy from a Referrer-Policy header) のようにします >>60

  1. [75] ヘッダー値を、応答ヘッダーリストReferrer-Policy: ヘッダーすべての値を combine した結果に設定します。
  2. [151] リストを、ヘッダー値, で分割した結果に設定します。
  3. [156] ポリシーを、空リストに設定します。
  4. [61] リストの各項目について、
    1. [152] を、項目の先頭と末尾から OWS をすべて除去した結果に設定します。
    2. [153] ASCII英字でも - でもないバイトが含まれていれば、
      1. [154] 空文字列を返し、ここで停止します。
    3. [155] 参照元ポリシーのいずれか (廃止されていないもの。バイト大文字・小文字不区別。) と等しく、 空文字列ないなら、
      1. [157] と等しい参照元ポリシーを、リストに追加します。
  5. [62] ポリシーが空なら、
    1. [66] 空文字列を返します。
  6. [67] それ以外なら、
    1. [64] ポリシーの最後の要素を返します。
[63] <meta name=referrer>廃止された値は、 Referrer-Policy: ヘッダーでは認識されず、無視されます。

referrerpolicy 内容属性、referrerPolicy IDL属性

[89] 次の要素インターフェイスreferrerpolicy