Định nghĩa về "same-site" đang phát triển để bổ sung lược đồ URL. Do đó, các đường liên kết giữa phiên bản HTTP và HTTPS của một trang web giờ đây được tính là yêu cầu trên nhiều trang web. Hãy nâng cấp lên giao thức HTTPS theo mặc định để tránh gặp phải các vấn đề (nếu có thể) hoặc đọc tiếp để biết thông tin chi tiết về việc cần có các giá trị thuộc tính SameSite.
Lập lịch trình Cùng trang web sửa đổi định nghĩa của một trang web (web) từ miền có thể đăng ký thành lược đồ + miền có thể đăng ký. Bạn có thể xem thêm thông tin chi tiết và ví dụ trong Hiểu về "same-site" (cùng một trang web) và "same-origin".
Tin vui là: nếu trang web của bạn đã được nâng cấp hoàn toàn lên HTTPS thì bạn không phải lo lắng về bất cứ điều gì. Sẽ không có gì thay đổi đối với bạn.
Nếu bạn chưa nâng cấp hoàn toàn trang web của mình thì đây nên là ưu tiên.
Tuy nhiên, nếu có trường hợp mà khách truy cập trang web của bạn sẽ chuyển đổi giữa HTTP và
HTTPS thì một số trường hợp phổ biến đó và cookie SameSite
có liên quan
được trình bày bên dưới.
Bạn có thể bật những thay đổi này để thử nghiệm trong cả Chrome và Firefox.
- Trên Chrome 86, hãy bật
about://flags/#schemeful-same-site
. Theo dõi tiến trình trên trang Trạng thái Chrome . - Từ Firefox 79, đặt
network.cookie.sameSite.schemeful
thànhtrue
quaabout:config
. Theo dõi tiến trình qua Bugzilla .
Một trong những lý do chính dẫn đến việc thay đổi SameSite=Lax
làm mặc định cho
để bảo vệ chống lại Hành vi giả mạo yêu cầu trên nhiều trang web
(CSRF). Tuy nhiên,
thì lưu lượng truy cập HTTP không an toàn vẫn là cơ hội cho kẻ tấn công mạng
can thiệp vào cookie mà sau đó sẽ được sử dụng trên phiên bản HTTPS bảo mật của
của bạn. Việc tạo ranh giới chéo giữa các giao thức sẽ mang lại
để tăng cường bảo vệ chống lại các cuộc tấn công này.
Trường hợp trên nhiều lược đồ phổ biến
Di chuyển
Điều hướng giữa các phiên bản lược đồ chéo của một trang web (ví dụ: liên kết từ
http://site.example thành https://site.example) trước đây sẽ cho phép
SameSite=Strict
cookie sẽ được gửi. Đây hiện được coi là một trang web
điều hướng, tức là SameSite=Strict
cookie sẽ bị chặn.
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bị chặn | ⛔ Bị chặn |
SameSite=Lax
|
✓ Được phép | ✓ Được phép |
SameSite=None;Secure
|
✓ Được phép | ⛔ Bị chặn |
Đang tải tài nguyên phụ
Mọi thay đổi bạn thực hiện ở đây chỉ nên được coi là biện pháp khắc phục tạm thời khi bạn nâng cấp lên HTTPS đầy đủ.
Ví dụ về tài nguyên phụ bao gồm hình ảnh, iframe và yêu cầu mạng được thực hiện bằng XHR hoặc Fetch.
Tải một tài nguyên phụ trên nhiều lược đồ trên một trang mà trước đây cho phép
SameSite=Strict
hoặc SameSite=Lax
cookie sẽ được gửi hoặc đặt. Bây giờ là
được xử lý theo cách giống như mọi tài nguyên phụ của bên thứ ba hoặc trên nhiều trang web khác
có nghĩa là mọi cookie SameSite=Strict
hoặc SameSite=Lax
sẽ bị chặn.
Ngoài ra, ngay cả khi trình duyệt không cho phép tài nguyên từ các giao thức không an toàn để
được tải trên một trang an toàn, thì tất cả cookie sẽ bị chặn trong các yêu cầu này vì
cookie của bên thứ ba hoặc cookie trên nhiều trang web cần phải có Secure
.
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bị chặn | ⛔ Bị chặn |
SameSite=Lax
|
⛔ Bị chặn | ⛔ Bị chặn |
SameSite=None;Secure
|
✓ Được phép | ⛔ Bị chặn |
ĐĂNG biểu mẫu
Trước đây, việc đăng giữa các phiên bản lược đồ chéo của một trang web sẽ cho phép
cookie được đặt bằng SameSite=Lax
hoặc SameSite=Strict
sẽ được gửi. Bây giờ là
được coi là POST trên nhiều trang web, tức là chỉ có thể gửi SameSite=None
cookie. Bạn có thể
gặp phải trường hợp này trên các trang web có phiên bản không an toàn theo mặc định,
nhưng hãy nâng cấp người dùng lên phiên bản bảo mật khi gửi thông tin đăng nhập hoặc
biểu mẫu thanh toán.
Giống như với tài nguyên phụ, nếu yêu cầu đến từ một nguồn bảo mật, ví dụ: HTTPS thành một
không an toàn, ví dụ: HTTP, ngữ cảnh thì tất cả cookie sẽ bị chặn đối với các yêu cầu này
vì cookie của bên thứ ba hoặc cookie trên nhiều trang web cần phải có Secure
.
HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bị chặn | ⛔ Bị chặn |
SameSite=Lax
|
⛔ Bị chặn | ⛔ Bị chặn |
SameSite=None;Secure
|
✓ Được phép | ⛔ Bị chặn |
Làm cách nào để thử nghiệm trang web của tôi?
Công cụ và thông báo dành cho nhà phát triển có sẵn trong Chrome và Firefox.
Trên Chrome 86, thẻ Vấn đề trong Công cụ cho nhà phát triển sẽ bao gồm các sự cố Cùng trang web có lược đồ. Bạn có thể thấy các vấn đề sau được đánh dấu cho trang web của bạn.
Vấn đề về việc đi theo chỉ dẫn:
- "Di chuyển hoàn toàn sang HTTPS để tiếp tục nhận được cookie được gửi trên cùng một trang web yêu cầu"—Cảnh báo rằng cookie sẽ bị chặn trong một phiên bản tương lai của Chrome.
- "Di chuyển hoàn toàn sang HTTPS để gửi cookie trên các yêu cầu trên cùng một trang web"—A cho biết cookie đó đã bị chặn.
Vấn đề khi tải tài nguyên phụ:
- "Di chuyển hoàn toàn sang HTTPS để tiếp tục nhận được cookie được gửi đến cùng một trang web tài nguyên phụ" hoặc "Di chuyển hoàn toàn sang HTTPS để tiếp tục cho phép cookie được đặt bởi các tài nguyên phụ cùng trang web"—Cảnh báo rằng cookie sẽ được bị chặn trong phiên bản Chrome sau này.
- "Di chuyển hoàn toàn sang HTTPS để gửi cookie đến các tài nguyên phụ cùng trang web" hoặc "Di chuyển hoàn toàn sang HTTPS để cho phép cùng một trang web đặt cookie tài nguyên phụ"—Cảnh báo rằng cookie đã bị chặn. Chính sách sau cũng có thể xuất hiện khi POST một biểu mẫu.
Bạn có thể xem thêm thông tin chi tiết trong phần Mẹo kiểm thử và gỡ lỗi cho lược đồ Cùng trang web.
Từ Firefox 79, với network.cookie.sameSite.schemeful
được đặt thành true
qua
about:config
bảng điều khiển sẽ hiển thị thông báo cho các vấn đề cùng trang web có lập trình.
Bạn có thể thấy những thông tin sau trên trang web của mình:
- "Cookie
cookie_name
sẽ sớm được xem là cookie trên nhiều trang webhttp://site.example/
vì lược đồ không khớp." - "Cookie
cookie_name
đã được coi là trên nhiều trang webhttp://site.example/
vì lược đồ không khớp."
Câu hỏi thường gặp
Trang web của tôi đã hoàn toàn truy cập được trên HTTPS, tại sao tôi lại gặp vấn đề trong Công cụ cho nhà phát triển của trình duyệt?
Có thể một số đường liên kết và tài nguyên phụ của bạn vẫn trỏ đến các đường liên kết không an toàn URL.
Một cách để khắc phục vấn đề này là sử dụng HTTP
Nghiêm ngặt-Bảo mật truyền tải
(HSTS) và lệnh includeSubDomain
. Với HSTS + includeSubDomain
đều
nếu một trong các trang của bạn vô tình bao gồm một liên kết không an toàn, trình duyệt sẽ
tự động sử dụng phiên bản an toàn.
Nếu tôi không thể nâng cấp lên HTTPS thì sao?
Mặc dù bạn nên nâng cấp toàn bộ trang web của mình lên HTTPS để bảo vệ người dùng của bạn, nếu bạn không thể tự làm như vậy, chúng tôi khuyên bạn nên liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn để xem họ có thể cung cấp lựa chọn đó không. Nếu bạn tự tổ chức, thì Let's Encrypt sẽ cung cấp một số công cụ để cài đặt và định cấu hình chứng chỉ. Bạn cũng có thể điều tra việc di chuyển trang web sau một mạng phân phối nội dung (CDN) hoặc proxy khác có thể cung cấp kết nối HTTPS.
Nếu cách đó vẫn không được, hãy thử giảm mức bảo vệ của SameSite
trên
cookie bị ảnh hưởng.
- Trong trường hợp chỉ có
SameSite=Strict
cookie bị chặn, bạn có thể giảm biện pháp bảo vệ thànhLax
. - Trong trường hợp cả cookie
Strict
vàLax
đều bị chặn và cookie được gửi đến (hoặc được đặt từ) một URL bảo mật, bạn có thể giảm biện pháp bảo vệ vàoNone
.- Giải pháp này sẽ không thành công nếu URL mà bạn đang gửi cookie đến (hoặc
đặt từ khoá) là không an toàn. Điều này là do
SameSite=None
yêu cầuSecure
trên cookie, điều này có nghĩa là những cookie đó có thể không được gửi hoặc thiết lập trên một kết nối không an toàn. Trong trường hợp này, bạn sẽ không thể truy cập cho đến khi trang web của bạn được nâng cấp lên HTTPS. - Hãy nhớ rằng, đây chỉ là tạm thời vì cuối cùng cookie của bên thứ ba sẽ bị bị loại bỏ hoàn toàn.
- Giải pháp này sẽ không thành công nếu URL mà bạn đang gửi cookie đến (hoặc
đặt từ khoá) là không an toàn. Điều này là do
Điều này ảnh hưởng như thế nào đến cookie của tôi nếu tôi chưa chỉ định thuộc tính SameSite
?
Những cookie không có thuộc tính SameSite
được xử lý như thể chúng được chỉ định
SameSite=Lax
và cùng một hành vi trên nhiều lược đồ cũng áp dụng cho các cookie này
tốt. Xin lưu ý rằng trường hợp ngoại lệ tạm thời đối với các phương thức không an toàn vẫn được áp dụng. Hãy xem
giải pháp giảm thiểu Lax + POST trong Chromium SameSite
Câu hỏi thường gặp để biết thêm thông tin.
WebSockets bị ảnh hưởng như thế nào?
Các kết nối WebSocket vẫn sẽ được coi là cùng một trang web nếu chúng giống nhau trang.
Cùng một trang web:
- Kết nối
wss://
từhttps://
- Kết nối
ws://
từhttp://
Trên nhiều trang web:
- Kết nối
wss://
từhttp://
- Kết nối
ws://
từhttps://
Ảnh của Julissa Ma tuý đá về Không hiển thị nội dung