Tệp kê khai – Tài nguyên có thể truy cập trên web

Một mảng chuỗi chỉ định đường dẫn của tài nguyên đóng gói có thể sử dụng được trong ngữ cảnh của một trang web. Những đường dẫn này tương ứng với thư mục gốc của gói và có thể chứa ký tự đại diện. Cho ví dụ: một tiện ích chèn một tập lệnh nội dung với ý định tạo một số tuỳ chỉnh giao diện cho example.com sẽ cho phép mọi tài nguyên mà giao diện yêu cầu (hình ảnh, biểu tượng, biểu định kiểu, tập lệnh, v.v.) như sau:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

Sau đó, những tài nguyên này sẽ có sẵn trên trang web thông qua URL chrome-extension://[PACKAGE ID]/[PATH] có thể được tạo bằng extension.getURL . Tài nguyên trong danh sách cho phép được phân phát với tiêu đề CORS thích hợp để luôn có sẵn thông qua các cơ chế như XHR.

Thao tác điều hướng từ một nguồn gốc web đến một tài nguyên tiện ích sẽ bị chặn trừ phi tài nguyên đó trong danh sách là có thể truy cập trên web. Lưu ý các trường hợp góc sau:

  • Khi một tiện ích sử dụng API webRequest hoặc declarativeWebRequest để chuyển hướng công khai yêu cầu tài nguyên đến một tài nguyên không truy cập được trên web, thì yêu cầu đó cũng bị chặn.
  • Điều trên vẫn đúng ngay cả khi tài nguyên không truy cập được trên web lại được sở hữu bởi lệnh chuyển hướng tiện ích.

Bản thân các tập lệnh nội dung không cần phải được đưa vào danh sách cho phép.

Trước phiên bản tệp kê khai 2, bạn có thể truy cập tất cả tài nguyên trong tiện ích từ bất kỳ trang nào trên web. Điều này cho phép một trang web độc hại tạo vân tay số các tiện ích mà người dùng đã cài đặt hoặc khai thác lỗ hổng bảo mật (ví dụ: lỗi XSS) trong các tiện ích đã cài đặt. Giới hạn tính sẵn có cho các tài nguyên được thiết kế rõ ràng là có thể truy cập được trên web cho cả giảm thiểu bề mặt tấn công hiện có và bảo vệ quyền riêng tư của người dùng.

Tình trạng còn hàng mặc định

Tài nguyên bên trong các gói sử dụng manifest_version 2 trở lên bị chặn theo mặc định, và phải nằm trong danh sách cho phép để sử dụng thông qua tài sản này.

Các tài nguyên bên trong gói sử dụng manifest_version 1 có sẵn theo mặc định, nhưng nếu bạn có hãy đặt thuộc tính này thì thuộc tính này sẽ được coi là danh sách đầy đủ gồm tất cả tài nguyên trong danh sách cho phép. Các tài nguyên không có trong danh sách sẽ bị chặn.