浏览器扩展权限分析
网络所有处理都在浏览器本地完成,数据不上传服务器
把一个浏览器扩展的 `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 语法出错时指出第几行第几列并显示上下文
- 可以只看权限名不看说明,或关掉风险分级
- 结果可逐条复制
使用方法
- 把扩展的 manifest.json 整段粘贴进输入框
- 选择是否列出用户可见影响、是否按风险分级
- 结果实时出现:清单、逐条权限、主机权限与风险结论
- 点某一行的复制按钮取走那一项
常见问题
- MV2 与 MV3 的权限有什么不一样?
- 存放位置不同。MV3 把 API 权限放在 `permissions`,把站点权限单独放在 `host_permissions`;MV2 把两者混在 `permissions` 里。所以一个 MV3 扩展的 `"host_permissions": ["<all_urls>"]` 如果按 MV2 的方式去读就会被整段漏掉,而那正是最该警告的一项 —— 工具按 `manifest_version` 分流处理。
- `activeTab` 和 `tabs` 不是差不多吗?
- 差很多。`activeTab` 只在你点击扩展图标时临时访问当前这一个标签页,权限范围最小;`tabs` 则允许随时读取并修改你所有标签页的地址与标题。两者名字很像,风险级别却不同,工具把它们分开标注。
- 完全不用权限的扩展一定安全吗?
- 不一定,但权限越少能做的事情越少是确定的。工具只根据清单里声明的权限判断 —— 它读不出扩展代码实际做了什么,也读不出运行时动态申请的权限。所以「低风险」只代表这份清单里没有高危项,不代表这个扩展一定可信。
- manifest.json 会上传吗?
- 不会。解析、翻译、分级全部在浏览器里完成,页面不发送任何请求。
相关工具
配置校验
网络校验 package.json、.env、robots.txt、sitemap.xml 与 HTTP 响应头,结论分错误、警告、建议三级,每条都说明为什么。全部在浏览器本地完成。
JSON 格式化
格式化在线 JSON 格式化与校验工具:树形折叠浏览、搜索键值、逐节点改值与删除、语法错误定位到具体行列,输入框带行号与高亮。全部在浏览器本地完成。
robots.txt 生成
网络生成 robots.txt:可选全部放行、只拦 AI 训练爬虫、全部禁止或自定义名单,并配置禁止路径、Sitemap 与 Crawl-delay。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。