Sec-Fetch-Site 請求頭
HTTP Sec-Fetch-Site Fetch 元資料請求頭指示請求發起者的源與所請求資源的源之間的關係。
換句話說,此請求頭告訴伺服器,對資源的請求是來自同一源、同一站點、不同站點,還是“使用者發起的”請求。伺服器隨後可以使用此資訊來決定是否應允許該請求。
通常情況下,同源請求會預設被允許,但來自其他源的請求如何處理可能進一步取決於所請求的資源,或另一個 Fetch 元資料請求頭中的資訊。預設情況下,不被接受的請求應以 403 響應碼拒絕。
| 頭型別 | Fetch 元資料請求頭 |
|---|---|
| 禁止請求頭 | 是 (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 的 Fetch 請求是同源請求。瀏覽器將生成如下所示的 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 發起 Fetch 請求,會導致瀏覽器生成不同的請求頭(例如,Sec-Fetch-Site: cross-site),伺服器可以選擇接受或拒絕。
http
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
規範
| 規範 |
|---|
| Fetch 元資料請求頭 # sec-fetch-site-header |
瀏覽器相容性
載入中…
另見
Sec-Fetch-Mode、Sec-Fetch-User、Sec-Fetch-DestFetch 元資料請求頭- 使用 Fetch 元資料保護你的資源免受網路攻擊 (web.dev)
- Fetch 元資料請求頭操場 (secmetadata.appspot.com)