piapia123
zh

浏览器扩展权限分析

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把一个浏览器扩展的 `manifest.json` 整段粘进来,看它到底能碰你什么。工具会列出名称、版本、清单版本(MV2 / MV3),把它申请的权限逐条翻译成「扩展因此能做什么」,并单独标出 `<all_urls>`、`*://*/*`、`webRequest`、`cookies`、`clipboardRead`、`nativeMessaging` 这类高危项,最后给出整体风险分级。判据按 MV2 与 MV3 分流:MV3 的站点权限在 `host_permissions` 里,MV2 混在 `permissions` 里 —— 不分流就会漏掉最该警告的那一项。JSON 解析失败会指出出错的第几行第几列。全部在浏览器里完成。

功能

  • 列出名称、版本与清单版本(MV2 / MV3)
  • 把每个权限翻译成「扩展因此能做什么」
  • 按 MV2 / MV3 从正确的位置读取站点权限
  • 单独警告 <all_urls>、*://*/* 这类「任意站点」权限
  • 单独说明 webRequest、declarativeNetRequest、cookies、clipboardRead、nativeMessaging 等
  • 按 ok / 注意 / 高风险 三档给出整体分级
  • JSON 语法出错时指出第几行第几列并显示上下文
  • 可以只看权限名不看说明,或关掉风险分级
  • 结果可逐条复制

使用方法

  1. 把扩展的 manifest.json 整段粘贴进输入框
  2. 选择是否列出用户可见影响、是否按风险分级
  3. 结果实时出现:清单、逐条权限、主机权限与风险结论
  4. 点某一行的复制按钮取走那一项

常见问题

MV2 与 MV3 的权限有什么不一样?
存放位置不同。MV3 把 API 权限放在 `permissions`,把站点权限单独放在 `host_permissions`;MV2 把两者混在 `permissions` 里。所以一个 MV3 扩展的 `"host_permissions": ["<all_urls>"]` 如果按 MV2 的方式去读就会被整段漏掉,而那正是最该警告的一项 —— 工具按 `manifest_version` 分流处理。
`activeTab` 和 `tabs` 不是差不多吗?
差很多。`activeTab` 只在你点击扩展图标时临时访问当前这一个标签页,权限范围最小;`tabs` 则允许随时读取并修改你所有标签页的地址与标题。两者名字很像,风险级别却不同,工具把它们分开标注。
完全不用权限的扩展一定安全吗?
不一定,但权限越少能做的事情越少是确定的。工具只根据清单里声明的权限判断 —— 它读不出扩展代码实际做了什么,也读不出运行时动态申请的权限。所以「低风险」只代表这份清单里没有高危项,不代表这个扩展一定可信。
manifest.json 会上传吗?
不会。解析、翻译、分级全部在浏览器里完成,页面不发送任何请求。

相关工具