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) vào các trang có hộp cát. Thay vào đó, hãy 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 trong một nguồn gốc duy nhất có hộp cát và Chính sách bảo mật nội dung (không bắt buộc) để sử dụng với các trang đó. Việc ở trong hộp cát có hai tác động:

  1. Trang có hộp cát sẽ không có quyền truy cập vào API ứng dụng/tiện ích hoặc quyền truy cập trực tiếp vào các trang không có hộp cát (trang này có thể giao tiếp với các 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 này có giá trị CSP riêng). Chẳng hạn, điều 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 với 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ẽ được tải trong cửa sổ hoặc khung. Các tài nguyên mà các trang có 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 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.