Tham gia chương trình dùng thử theo nguyên gốc để truy cập bộ nhớ không phải cookie thông qua Storage Access API

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 đã áp dụng các thay đổi đối với bộ nhớ, trình chạy dịch vụ và API giao tiếp bằng cách phân vùng trong ngữ cảnh của bên thứ ba. Ngoài việc bị tách biệt theo chính sách cùng nguồn gốc, các API bị ảnh hưởng được dùng trong ngữ cảnh bên thứ ba cũng bị tách biệt theo trang web của ngữ cảnh cấp cao nhất.

Các trang web chưa có thời gian triển khai tính năng hỗ trợ phân vùng bộ nhớ của bên thứ ba có thể tham gia thử nghiệm ngừng hoạt động để tạm thời huỷ phân vùng (tiếp tục tách biệt theo chính sách cùng nguồn gốc nhưng loại bỏ sự tách biệt với trang web cấp cao nhất) và khôi phục hành vi trước đó của bộ nhớ, trình chạy dịch vụ và API giao tiếp trong nội dung được nhúng trên trang web của họ. Thời gian thử nghiệm ngừng sử dụng này sẽ kết thúc khi Chrome 127 phát hành vào ngày 3 tháng 9 năm 2024. Xin lưu ý rằng chương trình này tách biệt với chương trình thử nghiệm ngừng sử dụng quyền truy cập vào cookie của bên thứ ba: chương trình này chỉ dành cho quyền truy cập vào bộ nhớ.

Là một giải pháp lâu dài để giải quyết một số trường hợp sử dụng bị gián đoạn do việc phân vùng bộ nhớ không phải cookie của bên thứ ba, Chrome đang đề xuất các bên thứ ba có thể yêu cầu quyền truy cập vào bộ nhớ/giao tiếp (cả cookie và không phải cookie) thông qua API Truy cập bộ nhớ (thông tin vận chuyển kể từ phiên bản Chrome 117), vốn đã cho phép các bên thứ ba yêu cầu quyền truy cập vào cookie.

Kể từ Chrome 120, đề xuất này sẽ được cung cấp để thử nghiệm thông qua bản dùng thử theo nguyên gốc. Nhà phát triển nên tham gia bản dùng thử theo nguyên gốc này để đánh giá cách giải pháp mà chúng tôi đề xuất xử lý các trường hợp sử dụng của họ nhằm đảm bảo họ được chuẩn bị sẵn sàng trước khi thời gian thử nghiệm ngừng sử dụng kết thúc.

Thông tin chi tiết về bản dùng thử theo nguyên gốc

Kể từ Chrome 120, Chrome sẽ hỗ trợ bản dùng thử theo nguyên gốc StorageAccessAPIBeyondCookies, để bật tiện ích đề xuất của Storage Access API (tương thích ngược) nhằm cho phép truy cập vào bộ nhớ không phân vùng (cookie và không phải cookie) trong ngữ cảnh bên thứ ba.

Cơ học

Bạn có thể sử dụng API như sau (JavaScript chạy trong một iframe được nhúng):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

Nếu chỉ muốn quyền truy cập vào một API cụ thể thay vì quyền truy cập vào all, bạn có thể chỉ truyền tên của các tên người dùng API mà bạn cần. Ví dụ: bạn có thể truyền {sessionStorage: true} để chỉ có quyền truy cập vào Bộ nhớ phiên hoặc {indexedDB: true, locks:true} để có quyền truy cập vào IndexedDB và Khoá web.

Ngoài việc gọi tiện ích bổ sung này, quyền truy cập vào bộ nhớ không chứa cookie sẽ đáp ứng các yêu cầu hiện tại đối với việc truy cập vào cookie thông qua Storage Access API. Ví dụ: trong Chrome, không có lời nhắc nào xuất hiện khi các nguồn gốc nằm trong cùng một Nhóm trang web có liên quan (RWS, tên mới của Nhóm bên thứ nhất). Những nguồn gốc không thuộc cùng một RWS sẽ phải tuân thủ các yêu cầu về lời nhắc của API truy cập bộ nhớ trong Chrome.

Thời lượng

Bản dùng thử theo nguyên gốc sẽ có trên Chrome 120 cho đến Chrome 125 (hoặc sau ngày 6 tháng 8 năm 2024 đối với bất kỳ mốc quan trọng nào).

Phạm vi

Chrome 120 chỉ có Bộ nhớ DOM (bộ nhớ phiên và bộ nhớ cục bộ), Cơ sở dữ liệu đã lập chỉ mục và Khoá web.

Bộ nhớ đệm, Hệ thống tệp riêng của nguồn gốc, Hạn mức, Bộ nhớ blob và Kênh truyền tin đã được thêm vào Chrome 121.

Shared Workers (Trình chạy dùng chung) và quyền kiểm soát việc thêm cookie đã được thêm vào Chrome 123.

Worker chuyên dụng kế thừa quyền truy cập vào cookie chưa phân vùng nếu requestStorageAccess được gọi trước khi worker được tạo kể từ Chrome 120 (không yêu cầu sử dụng tay cầm API truy cập bộ nhớ).

Tham gia

  1. Đánh giá cách bạn sử dụng cookie và bộ nhớ không phải cookie trong ngữ cảnh bên thứ ba. Ví dụ về trường hợp sử dụng có thể giúp bạn hiểu liệu đề xuất này có phù hợp với nhu cầu của bạn hay không.
  2. Chạy Chrome phiên bản 120 (trở lên) và đảm bảo bạn đã bật cờ test-third-party-cookie-phaseout.
  3. Nếu muốn thử nghiệm tính năng này trên thiết bị mà không cần thiết lập mã thông báo dùng thử theo nguyên gốc trước, thì bạn có thể bật #enable-experimental-web-platform-features trong trình duyệt.
    1. Sau khi thử nghiệm xong trên máy, bạn có thể đăng ký dùng thử phiên bản gốc StorageAccessAPIBeyondCookies và nhận mã thông báo cho các miền của mình. Để biết hướng dẫn chi tiết hơn, hãy truy cập vào bài viết Bắt đầu thử nghiệm theo nguyên gốc. Hướng dẫn khắc phục sự cố về bản dùng thử theo nguyên gốc Chrome cung cấp danh sách kiểm tra đầy đủ để đảm bảo mã thông báo của bạn được định cấu hình chính xác.
    2. Nhúng mã thông báo dùng thử theo nguyên gốc đó vào iframe mà bạn cần sử dụng tay xử lý Storage Access API (API Truy cập bộ nhớ) trong đó, bằng tiêu đề HTTP, thẻ meta HTML hoặc theo phương thức lập trình. Lưu ý rằng mã thông báo phải được nhúng bởi bất kỳ khung nào muốn sử dụng API này. Việc nhúng mã thông báo vào khung mẹ sẽ không bật API trong các khung con.
  4. Gọi document.requestStorageAccess(...) để lấy tên người dùng API Truy cập bộ nhớ trong iframe trên nhiều trang web. Hãy xem tài liệu về API Truy cập bộ nhớ để biết các yêu cầu để lệnh gọi này thành công.
  5. Di chuyển bộ nhớ liên quan trong iframe để sử dụng tên người dùng API truy cập bộ nhớ nếu có. Ví dụ: các lệnh gọi đến window.sessionStorage.setItem(...) sẽ trở thành handle.sessionStorage.setItem(...).
  6. Mở trang web của bạn và kiểm tra để đảm bảo rằng tên người dùng xử lý quyền truy cập vào bộ nhớ đang hoạt động như dự kiến.
  7. Để ngừng tham gia bản dùng thử theo nguyên gốc, hãy xoá mã thông báo mà bạn đã thêm ở bước 3.
  8. Gửi ý kiến phản hồi hoặc báo cáo mọi vấn đề bạn gặp phải cho Kho lưu trữ GitHub của API Truy cập bộ nhớ không phải cookie.

Bản minh hoạ: sử dụng Storage Access API để truy cập vào Bộ nhớ cục bộ không được phân vùng

Bản minh hoạ sau đây trình bày cách truy cập vào các Kênh truyền phát không được phân vùng từ một iframe của bên thứ ba bằng cách sử dụng Storage Access API:

https://saa-beyond-cookies.glitch.me/

Bản minh hoạ yêu cầu phiên bản Chrome 121 trở lên và có bật cờ test-third-party-cookie-phaseout.

Tài nguyên khác