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 trên nền tảng web, trong đó nêu rõ các quy định hạn chế đối với tập lệnh, kiểu và các tài nguyên khác mà một 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 tuỳ chọn riêng biệt cho cả trang tiện ích và trang tiện ích dạng hộp cát.

"Trang tiện ích" chính sách này áp dụng cho ngữ cảnh trang và trình chạy trong tiện ích. Cấu hình 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ó 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 trong 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 tập lệnh và đối tượng cục bộ từ tài nguyên được đó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ó nhiều quyền hơn để đánh giá các 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 cho tiện ích của họ, hoặc sử dụng chính sách bảo mật nội dung tối thiểu bắt buộc để đáp ứng nhu cầu của dự án.

Chính sách về trang của 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 nới lỏng 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 nguồn không được phép vào chính sách của tiện ích, Chrome sẽ hiển thị 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 cho các trang có hộp cát thoải mái hơn nhiều so với các 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 có hộp cát. Bạn có thể tuỳ chỉnh chính sách bảo mật nội dung trong hộp cát nếu cần.