Tệp kê khai – Chính sách bảo mật nội dung

Khoá tệp kê khai không bắt buộc chứa chính sách bảo mật nội dung của nền tảng web. Chính sách này chỉ định các hạn chế đối với tập lệnh, kiểu và các tài nguyên khác mà tiện ích có thể sử dụng. Trong khoá tệp kê khai này, bạn có thể xác định các chính sách riêng không bắt buộc cho cả trang tiện ích và trang tiện ích dạng hộp cát.

Chính sách "trang tiện ích" áp dụng cho các ngữ cảnh về trang và trình chạy trong tiện ích. Thao tác này sẽ bao gồm cửa sổ bật lên của tiện ích, trình chạy trong nền và các thẻ có các trang HTML hoặc iframe mà tiện ích đã mở. Chính sách hộp cát áp dụng cho tất cả các trang được chỉ định dưới dạng trang hộp cát trong tệp kê khai.

Chính sách mặc định

Nếu người dùng không xác định chính sách bảo mật nội dung trong tệp kê khai, thì các thuộc tính mặc định sẽ được sử dụng cho cả trang tiện ích và trang tiện ích dạng hộp cát.

Các giá trị mặc định này tương đương với việc chỉ định các chính sách sau trong tệp kê khai:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

Trong trường hợp này, tiện ích sẽ chỉ tải các đối tượng và tập lệnh cục bộ từ các tài nguyên đóng gói riêng. WebAssembly sẽ bị tắt và tiện ích này sẽ không chạy JavaScript cùng dòng hoặc không thể đánh giá các chuỗi là mã thực thi. Nếu bạn thêm trang hộp cát, thì trang đó sẽ có các quyền thoải mái hơn để đánh giá tập lệnh từ bên ngoài tiện ích.

Chính sách bảo mật nội dung tối thiểu và tuỳ chỉnh

Nhà phát triển có thể thêm hoặc xoá các quy tắc dành cho tiện ích của họ, hoặc dùng chính sách bảo mật nội dung tối thiểu bắt buộc sao cho phù hợp với nhu cầu của dự án.

Chính sách về trang tiện ích

Chrome thực thi chính sách bảo mật nội dung tối thiểu cho các trang tiện ích. Việc này tương đương với việc chỉ định chính sách sau trong tệp kê khai:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

Chính sách extension_pages không được vượt quá giá trị tối thiểu này. Nói cách khác, bạn không thể thêm các nguồn tập lệnh khác vào lệnh, chẳng hạn như thêm 'unsafe-eval' vào script-src. Nếu bạn thêm một nguồn không được phép vào chính sách của tiện ích, thì Chrome sẽ báo lỗi như sau vào thời điểm cài đặt:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

Chính sách về trang hộp cát

Chính sách mặc định dành cho các trang trong hộp cát sẽ nhẹ nhàng hơn nhiều so với trang tiện ích, vì trang hộp cát 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 các trang không ở trong hộp cát. Bạn có thể tuỳ chỉnh chính sách bảo mật nội dung hộp cát nếu cần.