SENSEL — AI sáng tạo & trải nghiệm nội dung số
HƯỚNG DẪN SENSEL

host_permissions và permissions trong Chrome extension khác nhau thế nào?

Trong Manifest V3, hai trường permissions và host_permissions thường xuất hiện gần nhau trong manifest nên rất dễ bị hiểu là một. Thực tế, chúng trả lời hai câu hỏi khác nhau: extension được dùng những API/chức năng nào của Chrome, và extension được phép tương tác với những website hoặc origin nào. Hiểu đúng sự khác biệt giúp người dùng đọc cảnh báo quyền chính xác hơn và giúp người phát triển thiết kế phạm vi quyền hẹp hơn.

Trả lời nhanhpermissions thường dành cho các API hoặc năng lực như storage, tabs, notifications; host_permissions mô tả website/origin mà extension có thể truy cập. Một extension có thể cần một loại, cả hai loại, hoặc quyền được cấp theo thời điểm bằng optional permissions. Không nên đánh giá mức an toàn chỉ bằng số lượng quyền; cần xem quyền đó phục vụ chức năng gì.
Minh họa sự khác nhau giữa host_permissions và permissions trong Chrome extension Manifest V3
Minh họa sự khác nhau giữa host_permissions và permissions trong Chrome extension Manifest V3.

1. Hai nhóm quyền đang trả lời hai câu hỏi khác nhau

Trong Chrome Extensions, permissions thường liệt kê các quyền API mà extension cần để dùng các khả năng đặc biệt của trình duyệt. Ví dụ storage cho phép lưu cấu hình, notifications cho phép tạo thông báo, còn tabs có thể mở rộng thông tin mà extension đọc được về tab tùy ngữ cảnh. Đây là nhóm quyền mô tả extension “có thể làm gì”.

host_permissions lại nói về nơi extension được phép tác động: một hoặc nhiều origin, domain hay pattern URL. Chẳng hạn một extension chỉ hoạt động trên youtube.com có thể khai báo phạm vi host hẹp thay vì xin truy cập mọi website. Đây là nhóm quyền mô tả extension “có thể làm ở đâu”.

Hai nhóm này liên quan nhưng không thay thế nhau. Một chức năng có thể cần API permission, host permission, hoặc kết hợp cả hai.

2. Vì sao cảnh báo khi cài extension có thể khác nhau?

Chrome tạo cảnh báo quyền dựa trên những năng lực mà manifest yêu cầu. Một host pattern rộng có thể tạo cảnh báo rằng extension có thể đọc và thay đổi dữ liệu trên nhiều website. Trong khi đó, một API permission nhạy cảm có thể tạo một kiểu cảnh báo khác. Vì vậy hai extension cùng “chặn quảng cáo” vẫn có thể hiện cảnh báo không giống nhau.

Người dùng nên đọc nội dung cảnh báo theo nghĩa cụ thể thay vì suy luận rằng nhiều dòng quyền luôn nguy hiểm hơn ít dòng quyền. Có những extension cần quyền rộng vì tính năng của chúng thực sự chạy trên nhiều website; ngược lại, một quyền hẹp nhưng không liên quan tới chức năng công bố vẫn là dấu hiệu cần đặt câu hỏi.

Nguyên tắc tốt là đối chiếu quyền với mô tả tính năng, privacy policy và nhà phát hành.

3. optional_permissions và optional_host_permissions giúp thu hẹp quyền ban đầu

Manifest V3 cho phép một số quyền được khai báo dưới dạng optional. Khi đó extension không nhận toàn bộ quyền ngay lúc cài; nó có thể yêu cầu sau khi người dùng thực hiện một thao tác liên quan. Cách này hữu ích khi một tính năng chỉ dành cho một nhóm người dùng hoặc một website cụ thể.

Với host permissions, extension cũng có thể xin quyền cho site theo nhu cầu thay vì mặc định truy cập mọi domain. Điều này giảm phạm vi ban đầu và giúp người dùng hiểu rõ thời điểm một quyền mới được yêu cầu.

Tuy nhiên optional không có nghĩa là “không có quyền”; một khi người dùng cấp, extension vẫn có quyền tương ứng trong phạm vi đã đồng ý.

4. Điều này liên quan gì tới adblock và YouTube?

Một adblock trên Chrome có thể cần host permission để áp dụng logic trên website, đọc trạng thái trang hoặc hỗ trợ content script. Nhưng phần chặn request bằng declarativeNetRequest còn phụ thuộc vào ruleset và API permission riêng. Vì vậy không nên nhìn một dòng host_permissions rồi kết luận toàn bộ cơ chế chặn quảng cáo hoạt động theo content script.

Nếu adblock chạy ở website này nhưng không chạy ở website khác, site access và host permissions là một trong những lớp cần kiểm tra. Nếu ruleset không được bật hoặc cấu hình lọc sai, permission đúng vẫn chưa đảm bảo kết quả mong muốn.

Khi chẩn đoán, hãy tách quyền, ruleset, service worker và xung đột extension thành các lớp riêng.

5. Cách đọc manifest mà không bị rối

Bắt đầu bằng permissions để xem extension cần API nào, sau đó đọc host_permissions để xem phạm vi website. Tiếp theo xem optional_permissions và optional_host_permissions nếu có. Sau cùng, đối chiếu với content_scripts vì content script cũng có match patterns riêng.

Đừng chỉ nhìn một trường độc lập. Kiến trúc extension là tổng hợp của quyền, script, service worker, ruleset và luồng xin quyền tại runtime. Một quyền hợp lý trong bối cảnh này có thể trở nên đáng nghi nếu không phục vụ chức năng nào được công bố.

Với người dùng không kỹ thuật, trang chi tiết extension và privacy disclosure thường là điểm đọc dễ hơn manifest thô.

Kết luận: permissions trả lời “được dùng API/chức năng gì”, còn host_permissions trả lời “được truy cập website/origin nào”.

Cài SENSEL Adblock và kiểm tra trên chính máy của bạn

SENSEL là tiện ích chặn quảng cáo cho Google Chrome Desktop, tập trung giảm quảng cáo gây gián đoạn khi xem YouTube. Cài miễn phí từ Chrome Web Store chính thức, sau đó kết nối tài khoản để dùng thử 7 ngày nếu đủ điều kiện. Không cần thanh toán trước và không tự động gia hạn.

Xem tính năng, phạm vi hỗ trợ và gói sử dụng

Nguồn chính thức và tài liệu tham khảo

Bài được đối chiếu với tài liệu chính thức hoặc tài liệu gốc của nhà cung cấp tại thời điểm cập nhật 07/09/2026. Chrome, YouTube, extension và chính sách quảng cáo có thể thay đổi; khi áp dụng hãy ưu tiên tài liệu hiện hành.

  1. Chrome Extensions — Declare permissions
  2. Chrome Extensions — Match patterns
  3. Chrome Extensions — Permissions API

Câu hỏi thường gặp

host_permissions có phải là permissions không?

Không. Chúng là hai trường riêng trong manifest và mô tả hai lớp quyền khác nhau.

Extension có thể xin thêm host permission sau khi cài không?

Có thể, nếu quyền đó được thiết kế theo cơ chế optional và người dùng cấp khi cần.

Nhiều host permissions có nghĩa extension nguy hiểm không?

Không thể kết luận chỉ từ số lượng. Cần xem phạm vi có phù hợp chức năng, publisher và cách xử lý dữ liệu hay không.