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

Cảnh báo: Kể từ phiên bản 57, Chrome sẽ không còn cho phép nội dung web bên ngoài (bao gồm cả khung và tập lệnh được nhúng) bên trong các trang ở chế độ hộp cát. Thay vào đó, vui lòng sử dụng chế độ xem web.

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 trong một nguồn gốc duy nhất trong hộp cát, và tuỳ chọn một Chính sách bảo mật nội dung để sử dụng với các trang đó. Việc ở trong hộp cát có hai ý nghĩa:

  1. 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()).
  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à phần còn lại của ứng dụng hoặc tiện ích sử dụng (trang này có giá trị CSP riêng). Chẳng hạn như điều này có thể 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 để hạn chế hộp cát hơn nữa, nhưng giá trị này phải có lệnh sandbox và không được có mã thông báo allow-same-origin (xem quy cách HTML5 để biết 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 vào các trang có thuộc tính hộp cát.

Xin lưu ý rằng bạn chỉ cần liệt kê những trang mà bạn dự kiến sẽ 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 Chrome. một cách an toàn" trình bày chi tiết hơn về cách triển khai quy trình làm việc trong hộp cát cho phép sử dụng các thư viện có thể gặp vấn đề khi thực thi theo 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 hộp cát khi sử dụng manifest_version 2 trở lên.