Cảnh báo: Kể từ phiên bản 57, Chrome sẽ không cho phép nội dung trên web bên ngoài nữa (bao gồm các khung và tập lệnh được nhúng) bên trong trang có hộp cát. Thay vào đó, vui lòng sử dụng webview.
Xác định một tập hợp các trang ứng dụng hoặc tiện ích sẽ được phân phát trên một nguồn gốc riêng biệt trong hộp cát, và tuỳ ý sử dụng Chính sách bảo mật nội dung. Việc ở trong hộp cát có hai ý nghĩa:
- Trang trong hộp cát sẽ không có quyền truy cập vào API tiện ích hoặc ứng dụng, cũng như không có quyền truy cập trực tiếp vào các trang không nằm trong hộp cát (trang này có thể giao tiếp với các trang đó thông qua
postMessage()
). Trang hộp cát không phải tuân thủ Chính sách bảo mật nội dung (CSP) mà các trang web khác sử dụng ứng dụng hoặc tiện ích (có giá trị CSP riêng). Ví dụ: điều này có nghĩa là sử dụng tập lệnh cùng dòng và
eval
.Ví dụ: sau đây là cách chỉ định rằng hai trang tiện ích sẽ được phân phát trong hộp cát có một CSP tuỳ chỉnh:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }
Nếu bạn không chỉ định, giá trị
content_security_policy
mặc định sẽ làsandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
. Bạn có thể chỉ định giá trị CSP của mình để hạn chế hộp cát hơn nữa, nhưng phải có lệnhsandbox
và có thể không có mã thông báoallow-same-origin
(xem thẻ HTML5 về các mã thông báo hộp cát có thể có). Ngoài ra, CSP mà bạn chỉ định có thể không cho phép tải nội dung web bên ngoài bên trong trang hộp cát.
Lưu ý rằng bạn chỉ cần liệt kê các trang bạn muốn tải trong cửa sổ hoặc khung. Các tài nguyên mà các trang trong hộp cát sử dụng (ví dụ: các tệp định kiểu hoặc tệp nguồn JavaScript) không cần xuất hiện trong danh sách sandboxed_page
, chúng sẽ sử dụng hộp cát của trang nhúng các tài nguyên đó.
"Sử dụng eval trong Tiện ích của Chrome. An toàn." đi sâu hơn về cách triển khai một quy trình hộp cát cho phép sử dụng các thư viện có thể gặp sự cố khi thực thi trong Chính sách bảo mật nội dung mặc định của tiện ích.
Bạn chỉ có thể chỉ định trang trong hộp cát khi sử dụng manifest_version
2 trở lên.