Sec-Fetch-Site header

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023.

Tiêu đề HTTP Sec-Fetch-Site fetch metadata request header cho biết mối quan hệ giữa nguồn gốc của bộ khởi tạo yêu cầu và nguồn gốc của tài nguyên được yêu cầu.

Nói cách khác, tiêu đề này báo cho máy chủ biết liệu yêu cầu tài nguyên đến từ cùng nguồn gốc, cùng trang web, trang web khác, hay là yêu cầu "do người dùng khởi tạo". Máy chủ sau đó có thể sử dụng thông tin này để quyết định xem có nên cho phép yêu cầu hay không.

Các yêu cầu cùng nguồn gốc thường được cho phép theo mặc định, nhưng điều xảy ra với các yêu cầu từ các nguồn gốc khác có thể phụ thuộc thêm vào tài nguyên đang được yêu cầu, hoặc thông tin trong fetch metadata request header khác. Theo mặc định, các yêu cầu không được chấp nhận nên bị từ chối với mã phản hồi 403.

Loại tiêu đề Fetch Metadata Request Header
Forbidden request header Có (tiền tố Sec-)
CORS-safelisted request header Không

Cú pháp

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

Chỉ thị

cross-site

Bộ khởi tạo yêu cầu và máy chủ lưu trữ tài nguyên có trang web khác nhau (tức là yêu cầu từ "potentially-evil.com" cho tài nguyên tại "example.com").

same-origin

Bộ khởi tạo yêu cầu và máy chủ lưu trữ tài nguyên có cùng origin (cùng scheme, host và port).

same-site

Bộ khởi tạo yêu cầu và máy chủ lưu trữ tài nguyên có cùng site, bao gồm cả scheme.

none

Yêu cầu này là thao tác do người dùng khởi tạo. Ví dụ: nhập URL vào thanh địa chỉ, mở bookmark, hoặc kéo và thả tệp vào cửa sổ trình duyệt.

Ví dụ

Yêu cầu fetch đến https://mysite.example/foo.json xuất phát từ trang web trên https://mysite.example (với cùng port) là yêu cầu same-origin. Trình duyệt sẽ tạo tiêu đề Sec-Fetch-Site: same-origin như được hiển thị bên dưới, và máy chủ thường sẽ cho phép yêu cầu:

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

Yêu cầu fetch đến cùng URL từ trang web khác, ví dụ potentially-evil.com, khiến trình duyệt tạo tiêu đề khác (ví dụ: Sec-Fetch-Site: cross-site), mà máy chủ có thể chọn chấp nhận hoặc từ chối:

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

Đặc tả

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

Tương thích trình duyệt

Xem thêm