Tệp kê khai – Hộp cát

Xác định tập hợp các trang tiện ích sẽ được phân phát trong một nguồn gốc riêng biệt trong hộp cát. Chiến lược phát hành đĩa đơn Chính sách bảo mật nội dung mà các trang hộp cát của tiện ích sử dụng được chỉ định trong Khoá "content_security_policy".

Việc ở trong hộp cát sẽ có hai tác động:

  1. Trang hộp cát sẽ không có quyền truy cập vào API tiện ích hoặc quyền truy cập trực tiếp vào không có hộp cát (có thể giao tiếp với các trang này bằng postMessage()).
  2. 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 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ụ: dưới đây là cách chỉ định hai trang tiện ích sẽ được phân phối trong hộp cát có CSP tuỳ chỉnh:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

Nếu không được 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 giá trị này PHẢI bao gồm Chỉ thị "sandbox" và KHÔNG ĐƯỢC có mã thông báo allow-same-origin (xem thẻ HTML5 về các mã thông báo hộp cát có thể có).

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. Tài liệu tham khảo được sử dụng bởi các trang hộp cát (ví dụ: biểu định kiểu hoặc các tệp nguồn JavaScript) không cần xuất hiện trong pages vì các tệp này sẽ sử dụng hộp cát của khung nhúng các mục đó.

"Sử dụng eval() trong Tiện ích của Chrome" sẽ đi sâu hơn về cách triển khai 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 theo Chính sách bảo mật nội dung mặc định của tiện ích.