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ả các khung và tập lệnh được nhúng) bên trong các trang có hộp cát. Thay vào đó, vui lòng sử dụng webview.

Xác định tập hợp các trang ứng dụng hoặc tiện ích được phân phát ở một nguồn gốc riêng biệt trong hộp cát và có thể 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 tồn tại trong hộp cát có hai tác động:

  1. Một trang có hộp cát sẽ không có quyền truy cập vào các API ứng dụng hoặc tiện ích, hoặc truy cập trực tiếp vào các trang không có hộp cát (trang có thể giao tiếp với những trang đó qua postMessage()).
  2. Trang có 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 có giá trị CSP riêng). Ví dụ: mã này có thể sử dụng tập lệnh cùng dòng và eval.

    Ví dụ: dưới đây là cách chỉ định rằng 2 trang tiện ích sẽ được phân phát trong một 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 hộp cát phải có lệnh sandbox và có thể không có mã thông báo allow-same-origin (xem thông số kỹ thuật 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 bên trong các trang có hộp cát.

Lưu ý rằng bạn chỉ cần liệt kê các 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 hộp cát sử dụng (ví dụ: biểu định kiểu hoặc tệp nguồn JavaScript) không cần xuất hiện trong danh sách sandboxed_page mà 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 quy trình tạo 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.