Sec-Fetch-Site 請求頭

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

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

瀏覽器相容性

另見