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
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:
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:
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
Sec-Fetch-Mode,Sec-Fetch-User,Sec-Fetch-Destfetch metadata request headers- Protect your resources from web attacks with Fetch Metadata (web.dev)
- Fetch Metadata Request Headers playground (secmetadata.appspot.com)