このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Sec-Fetch-Site ヘッダー

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2023年3月⁩.

HTTP の Sec-Fetch-Siteフェッチメタデータリクエストヘッダーで、リクエストの発行元のオリジンと、リクエストされたリソースのオリジンとの関係を示します。

言い換えれば、このヘッダーは、リソースへのリクエストが同一オリジン、同一サイト、 別サイトのどれから来ているのか、あるいは「ユーザーが開始した」リクエストであるかをサーバーに指示します。サーバーはこの情報に基づいて、リクエストが許可されるべきか否かを判断することができます。

同一オリジンからのリクエストは通常デフォルトで許可されますが、別のオリジンからのリクエストについては、要求されているリソースや、別のフェッチメタデータリクエストヘッダー内の情報にさらに依存する可能性があります。デフォルトでは、受け入れられないリクエストは 403 レスポンスコードで拒否されるべきです。

ヘッダー種別 フェッチメタデータリクエストヘッダー
禁止リクエストヘッダー はい(Sec- 接頭辞)
CORS セーフリストリクエストヘッダー いいえ

構文

http
Sec-Fetch-Site: cross-site
Sec-Fetch-Site: same-origin
Sec-Fetch-Site: same-site
Sec-Fetch-Site: none

ディレクティブ

cross-site

リクエストの送信元とリソースをホストしているサーバーのサイトが異なります(例 "potentially-evil.com" からの "example.com" 上のリソースへのリクエスト)。

same-origin

リクエストの送信元とリソースをホストするサーバーのオリジンは同じです(同じスキーム、ホスト、ポート番号)。

same-site

リクエストの発行元とリソースをホストするサーバーは、サイトがスキームを含めて同一です。

none

このリクエストはユーザーが開始した操作です。例えば、アドレスバーへの URL 入力、ブックマークを開く操作、ファイルをブラウザーウィンドウへドラッグ&ドロップする操作などです。

https://mysite.example のウェブページ(同じポート)から https://mysite.example/foo.json へのフェッチリクエストは、同一オリジンリクエストです。 ブラウザーは下記のように Sec-Fetch-Site: same-origin ヘッダーを生成し、サーバーは通常このリクエストを許可します。

http
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin

別のサイト(例えば potentially-evil.com)から同じ URL へフェッチリクエストを行うと、ブラウザーは異なるヘッダー(例えば Sec-Fetch-Site: cross-site)を発行します。サーバーはこのヘッダーを受け入れるか拒否するかを選択することが可能です。

http
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

仕様書

Specification
Fetch Metadata Request Headers
# sec-fetch-site-header

ブラウザーの互換性

関連情報