Trước khi bắt đầu:
- Nếu bạn không chắc chắn về sự khác biệt giữa "site" (trang web) và "origin" (nguồn gốc), hãy xem bài viết Tìm hiểu về "cùng trang web" và "cùng nguồn gốc".
- Tiêu đề
Refererbị thiếu chữ R do lỗi chính tả ban đầu trong thông số kỹ thuật. Tiêu đềReferrer-Policyvàreferrertrong JavaScript và DOM được viết đúng chính tả.
Tóm tắt
- Các trình duyệt đang phát triển theo hướng chính sách giới thiệu mặc định tăng cường quyền riêng tư, để cung cấp một giải pháp dự phòng tốt khi một trang web không đặt chính sách.
- Chrome dự định dần dần bật
strict-origin-when-cross-originlàm chính sách mặc định trong phiên bản 85; điều này có thể ảnh hưởng đến các trường hợp sử dụng dựa vào giá trị trường giới thiệu từ một nguồn khác. - Đây là chế độ mặc định mới, nhưng các trang web vẫn có thể chọn chính sách mà họ muốn.
- Để dùng thử thay đổi này trong Chrome, hãy bật cờ tại
chrome://flags/#reduced-referrer-granularity. Bạn cũng có thể xem bản minh hoạ này để thấy thay đổi trong thực tế. - Ngoài chính sách về thông tin giới thiệu, cách trình duyệt xử lý thông tin giới thiệu có thể thay đổi. Vì vậy, hãy chú ý đến điều này.
Nội dung thay đổi và lý do
Các yêu cầu HTTP có thể bao gồm tiêu đề Referer không bắt buộc, cho biết URL của nguồn gốc hoặc trang web mà yêu cầu được gửi đến. Tiêu đề Referer-Policy xác định dữ liệu nào được cung cấp trong tiêu đề Referer, cũng như cho hoạt động điều hướng và iframe trong document.referrer của đích đến.
Chính xác thông tin nào được gửi trong tiêu đề Referer trong một yêu cầu từ trang web của bạn sẽ do tiêu đề Referrer-Policy mà bạn đặt xác định.
Khi bạn không đặt chính sách nào, trình duyệt sẽ sử dụng chế độ mặc định. Các trang web thường tuân theo chế độ mặc định của trình duyệt.
Đối với các thành phần điều hướng và iframe, bạn cũng có thể truy cập vào dữ liệu có trong tiêu đề Referer thông qua JavaScript bằng cách sử dụng document.referrer.
Cho đến gần đây, no-referrer-when-downgrade là chính sách mặc định phổ biến trên các trình duyệt. Nhưng hiện tại, nhiều trình duyệt đang ở giai đoạn chuyển sang các chế độ mặc định tăng cường quyền riêng tư.
Chrome dự định chuyển chính sách mặc định từ no-referrer-when-downgrade sang strict-origin-when-cross-origin kể từ phiên bản 85.
Điều này có nghĩa là nếu bạn không đặt chính sách nào cho trang web của mình, thì Chrome sẽ sử dụng strict-origin-when-cross-origin theo mặc định. Xin lưu ý rằng bạn vẫn có thể đặt chính sách theo lựa chọn của mình; thay đổi này sẽ chỉ ảnh hưởng đến những trang web chưa đặt chính sách.
Thay đổi này có ý nghĩa gì?
strict-origin-when-cross-origin mang đến quyền riêng tư cao hơn. Với chính sách này, chỉ nguồn được gửi trong tiêu đề Referer của các yêu cầu từ nhiều nguồn.
Điều này giúp ngăn chặn rò rỉ dữ liệu riêng tư có thể truy cập được từ các phần khác của URL đầy đủ, chẳng hạn như đường dẫn và chuỗi truy vấn.
Ví dụ:
Yêu cầu trên nhiều nguồn gốc, được gửi từ https://site-one.example/stuff/detail?tag=red đến https://site-two.example/…:
- Với
no-referrer-when-downgrade: Referer: https://site-one.example/stuff/detail?tag=red. - Với
strict-origin-when-cross-origin: Referer: https://site-one.example/.
Những điểm nào vẫn giữ nguyên?
- Giống như
no-referrer-when-downgrade,strict-origin-when-cross-origincũng an toàn: không có thông tin về đơn vị giới thiệu (tiêu đềReferervàdocument.referrer) khi yêu cầu được thực hiện từ một nguồn HTTPS (an toàn) đến một nguồn HTTP (không an toàn). Bằng cách này, nếu trang web của bạn sử dụng HTTPS (nếu không, hãy ưu tiên sử dụng HTTPS), thì URL của trang web sẽ không bị rò rỉ trong các yêu cầu không phải HTTPS – vì bất kỳ ai trên mạng đều có thể thấy các yêu cầu này, nên điều này sẽ khiến người dùng của bạn gặp phải các cuộc tấn công trung gian. - Trong cùng một nguồn gốc, giá trị tiêu đề
Refererlà URL đầy đủ.
Ví dụ: Yêu cầu cùng nguồn gốc, được gửi từ https://site-one.example/stuff/detail?tag=red đến https://site-one.example/…:
- Với
strict-origin-when-cross-origin: Referer: https://site-one.example/stuff/detail?tag=red
Thay đổi này có tác động như thế nào?
Dựa trên các cuộc thảo luận với những trình duyệt khác và thử nghiệm riêng của Chrome trong Chrome 84, dự kiến sẽ có ít lỗi mà người dùng nhìn thấy.
Hoạt động ghi nhật ký hoặc phân tích phía máy chủ dựa trên URL giới thiệu đầy đủ có sẵn có thể bị ảnh hưởng do thông tin có độ chi tiết thấp hơn.
Việc bạn cần làm
Chrome dự định bắt đầu triển khai chính sách trường giới thiệu mặc định mới trong phiên bản 85 (tháng 7 năm 2020 đối với phiên bản thử nghiệm, tháng 8 năm 2020 đối với phiên bản ổn định). Xem trạng thái trong Mục trạng thái của Chrome.
Hiểu và phát hiện sự thay đổi
Để hiểu rõ những thay đổi mặc định mới trong thực tế, bạn có thể xem bản minh hoạ này.
Bạn cũng có thể sử dụng bản minh hoạ này để phát hiện chính sách nào được áp dụng trong phiên bản Chrome mà bạn đang chạy.
Kiểm tra thay đổi và tìm hiểu xem thay đổi này có ảnh hưởng đến trang web của bạn hay không
Bạn có thể dùng thử thay đổi này ngay từ Chrome 81: truy cập vào chrome://flags/#reduced-referrer-granularity trong Chrome rồi bật cờ này. Khi cờ này được bật, tất cả trang web không có chính sách sẽ sử dụng chế độ mặc định mới strict-origin-when-cross-origin.
Giờ đây, bạn có thể kiểm tra cách trang web và phần phụ trợ của bạn hoạt động.
Một việc khác cần làm để phát hiện tác động là kiểm tra xem cơ sở mã của trang web có sử dụng giá trị giới thiệu hay không – thông qua tiêu đề Referer của các yêu cầu đến trên máy chủ hoặc từ document.referrer trong JavaScript.
Một số tính năng trên trang web của bạn có thể bị hỏng hoặc hoạt động khác đi nếu bạn đang sử dụng giá trị giới thiệu của các yêu cầu từ một nguồn khác đến trang web của bạn (cụ thể hơn là đường dẫn và/hoặc chuỗi truy vấn) VÀ nguồn này sử dụng chính sách mặc định về giá trị giới thiệu của trình duyệt (tức là không có chính sách nào được đặt).
Nếu điều này ảnh hưởng đến trang web của bạn, hãy cân nhắc các lựa chọn thay thế
Nếu đang sử dụng giá trị giới thiệu để truy cập vào đường dẫn đầy đủ hoặc chuỗi truy vấn cho các yêu cầu đến trang web của bạn, thì bạn có một số lựa chọn:
- Sử dụng các kỹ thuật và tiêu đề thay thế như
OriginvàSec-fetch-Siteđể bảo vệ CSRF, ghi nhật ký và các trường hợp sử dụng khác. Xem Referer và Referrer-Policy: các phương pháp hay nhất. - Bạn có thể thống nhất với các đối tác về một chính sách cụ thể nếu cần và minh bạch với người dùng.
Kiểm soát quyền truy cập – khi trang web sử dụng trường giới thiệu để cấp quyền truy cập cụ thể vào tài nguyên của trang web cho các nguồn khác – có thể là một trường hợp như vậy, mặc dù với thay đổi của Chrome, nguồn vẫn sẽ được chia sẻ trong Tiêu đề
Referer(và trongdocument.referrer).
Xin lưu ý rằng hầu hết các trình duyệt đều đang đi theo hướng tương tự khi nói đến giá trị giới thiệu (xem các giá trị mặc định của trình duyệt và sự phát triển của chúng trong Giá trị giới thiệu và Chính sách giới thiệu: các phương pháp hay nhất.
Triển khai một chính sách rõ ràng, tăng cường quyền riêng tư trên trang web của bạn
Bạn nên gửi Referer nào trong các yêu cầu bắt nguồn từ trang web của mình, tức là bạn nên đặt chính sách nào cho trang web của mình?
Ngay cả khi Chrome có thay đổi, bạn vẫn nên đặt một chính sách rõ ràng, tăng cường quyền riêng tư như strict-origin-when-cross-origin hoặc nghiêm ngặt hơn ngay bây giờ.
Điều này giúp bảo vệ người dùng và giúp trang web của bạn hoạt động ổn định hơn trên các trình duyệt. Chủ yếu, nó cho phép bạn kiểm soát thay vì để trang web của bạn phụ thuộc vào các giá trị mặc định của trình duyệt.
Hãy xem Đường liên kết giới thiệu và Chính sách về đường liên kết giới thiệu: các phương pháp hay nhất để biết thông tin chi tiết về cách đặt chính sách.
Giới thiệu về Chrome Enterprise
Chính sách Chrome Enterprise ForceLegacyDefaultReferrerPolicy dành cho những quản trị viên CNTT muốn áp dụng chính sách trường giới thiệu mặc định trước đây của no-referrer-when-downgrade trong môi trường doanh nghiệp. Điều này giúp doanh nghiệp có thêm thời gian để kiểm thử và cập nhật các ứng dụng của mình.
Chính sách này sẽ bị loại bỏ trong Chrome 88.
Gửi phản hồi
Bạn có ý kiến phản hồi hoặc muốn báo cáo điều gì đó không? Chia sẻ ý kiến phản hồi về ý định phát hành của Chrome hoặc đăng câu hỏi của bạn lên Twitter tại @maudnals.
Xin chân thành cảm ơn tất cả những người đánh giá đã đóng góp và gửi ý kiến phản hồi, đặc biệt là Kaustubha Govind, David Van Cleve, Mike West, Sam Dutton, Rowan Merewood, Jxck và Kayce Basques.