功能定位:为什么需要“看得见”的扩展清单
谷歌浏览器如何查看并导出已安装的扩展列表,本质是把黑盒运行时变成可审计资产。2026 年 Chrome 126 之后,Manifest V4 强制 Service Worker 休眠,扩展权限粒度更细,企业合规部门需要一份“装了谁、能干什么、何时更新”的底账,才能通过 BeyondCorp 零信任审计。个人用户换机、重装、防“幽灵扩展”也同理。
与“同步已安装扩展”不同,导出列表可离线留存、版本对比、Diff 变更,是数据留存最后一环。下文所有路径均基于 2026-03-25 发布的 Chrome 126 稳定版,Windows/macOS/Linux 三桌面平台行为一致;Android/iOS 因政策限制仅可查看不可导出,会单独标注。
原生查看入口:最短路径与平台差异
桌面端:地址栏直达
在地址栏输入 chrome://extensions → 右上角开启开发者模式(Developer mode)→ 即可看到“扩展 ID”“版本号”“权限”三列。此页面为本地只读视图,不含导出按钮,但提供了后续脚本所需的原始字段。
移动端:只读列表,无导出
Android:Chrome 126 → 右上角 ⋮ → 设置 → 扩展程序(Beta)→ 仅展示名称与开关,iOS 因系统限制无扩展体系。两者均不提供任何导出,需借助桌面端同步后统一处理。
合规导出方案一:Chrome 企业策略报告
若设备已加入 Google Workspace 并启用ExtensionInstallSources 策略,管理员可在 Admin Console → 设备 → Chrome → 报告 → 扩展清单中下载整域 CSV,含 ID、版本、安装类型(强制/允许)、权限列表、最近更新日期。这份报告每日自动快照,可直接用于 SOX/ISO27001 审计底稿。
提示:个人账号无 Workspace 权限时,该菜单不可见,可跳过此节。
合规导出方案二:本地 CRX 解析脚本(无管理员权限)
步骤与原理
Chrome 把已装扩展以未打包形式放在用户数据目录:Extensions/ 子文件夹,文件夹名即扩展 ID。每个 ID 内按版本号再分一级,包含 manifest.json。读取该文件即可提取名称、版本、权限、内容脚本匹配模式等关键字段。
- 关闭 Chrome 完全退出,防止文件占用。
- 打开操作系统对应路径(以当前登录用户为准):
- Windows:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions - macOS:
~/Library/Application Support/Google/Chrome/Default/Extensions - Linux:
~/.config/google-chrome/Default/Extensions
- Windows:
- 运行下方 Node.js 脚本(需提前安装 Node 18+):
const fs = require('fs');
const path = require('path');
const extDir = process.argv[2] || './Extensions';
const rows = [];
fs.readdirSync(extDir, {withFileTypes:true})
.filter(d => d.isDirectory())
.forEach(id => {
const idPath = path.join(extDir, id.name);
const ver = fs.readdirSync(idPath)[0]; // 取首版本
const mani = path.join(idPath, ver, 'manifest.json');
if(!fs.existsSync(mani)) return;
try{
const m = JSON.parse(fs.readFileSync(mani));
rows.push({
id: id.name,
name: m.name || m.short_name || 'Unknown',
version: m.version,
permissions: (m.permissions||[]).join(';'),
update_url: m.update_url || ''
});
}catch(e){}
});
console.log('ID,Name,Version,Permissions,UpdateURL');
rows.forEach(r=>console.log(`${r.id},${r.name},${r.version},${r.permissions},${r.update_url}`));
脚本输出为 CSV,可直接导入 Excel / Google Sheets 做二次筛选。
警告:若扩展通过 Chrome Web Store 以外渠道安装(如 Dev 模式拖拽),update_url 字段可能为空,需手动标注来源。
一键备份扩展 CRX 文件(可选)
审计场景不仅要看清单,还要留存二进制,以便日后重现相同版本。Chrome 126 仍允许通过“打包扩展”按钮生成 .crx,但需逐一手动。可改用 --pack-extension 命令行批量操作:
- 在
chrome://version复制“命令行”路径,得到chrome.exe全路径。 - 对每一扩展 ID 执行:
chrome.exe --pack-extension=%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\{ID}\{Version} --pack-extension-key={可选私钥} - 将在上级目录得到
.crx与.pem私钥文件,统一存入加密盘即完成二进制级备份。
例外与取舍:哪些扩展不建议纳入清单
- 临时调试扩展:如 React DevTools 仅在开发机启用,生产环境无需审计,可在 CSV 中加“Environment”列标注。
- 企业强制黑名单:若管理员已通过 ExtensionInstallBlocklist 禁用,但本地仍残留元数据,脚本会一并抓取;需事后用策略 ID 列表过滤。
- 主题(Theme):在 manifest.json 中
"theme": {}字段存在时,不会申请危险权限,可视情况剔除以减少噪音。
与第三方审计工具协同
部分 SOC 平台(如 Splunk、QRadar)已内置 Chrome 扩展遥测插件,通过 chrome.enterprise.reportingPrivate API 实时上传安装事件。若组织未购买 Chrome Enterprise Premium,可用上述 CSV 作为离线数据源,每小时 cron 推送至 SIEM,字段映射如下:
| CSV 字段 | SIEM 字段 |
|---|---|
| id | extension_id |
| version | extension_version |
| permissions | risk_permissions |
警告:上传前请脱敏用户名,避免违反 GDPR/个人信息保护法。
故障排查:脚本常见报错对照表
| 现象 | 可能原因 | 处置 |
|---|---|---|
| Error: ENOENT | Chrome 正在运行,目录被锁 | 完全退出浏览器再试 |
| manifest.json 乱码 | 扩展采用非 UTF-8 编码 | iconv -f ISO-8859-1 -t UTF-8 转码后重试 |
| CSV 列为空 | 扩展为组件(component)类型 | 过滤掉 update_url 含 clients2.google.com/service 的条目 |
适用/不适用场景清单
- 适用:企业年审、ISO27001 证据、个人换机、防“幽灵扩展”、Manifest 迁移前的基线快照。
- 不适用:Android/iOS 端(无扩展体系)、CrOS 访客模式、 ephemeral(临时)Profile、已加密 Profile(忘记密码时路径不可解密)。
最佳实践 6 步法
- 每季度末完全退出 Chrome,跑一次脚本,留存 CSV+CRX 双份。
- 把 CSV 存入 Git 私有仓,利用 Diff 观察新增/移除。
- 对“高危权限”列(含
cookies、webRequestBlocking、file://*)标红,触发安全团队复核。 - 二进制 CRX 用 7-Zip 加密后放冷存储,保留周期 3 年,满足 SOX 404 条款。
- 迁移新电脑前,先在新系统完成策略同步,再对照 CSV 手工查漏,避免“策略漂移”。
- 若使用 Manifest V4 预览,把 Service Worker 休眠时间写入备注,供性能对比。
FAQ(结构化数据,利于富卡片收录)
导出扩展列表会泄露隐私吗?
脚本仅在本地读取 manifest.json,不会上传至任何云端;如要共享给审计方,请手动删除个人 Profile 路径字段即可。
为何部分扩展没有 update_url?
通过本地拖拽或开发者模式加载的扩展默认不含商店地址,属正常现象;如需更新需手动下载新版 CRX。
Chrome 127 会移除打包按钮吗?
截至 Chrome 126 稳定版,官方未宣布移除计划;若后续版本取消,可改用 --pack-extension 命令行继续导出。
总结与下一步行动
谷歌浏览器扩展列表的查看与导出,并非“高级技巧”,而是把运行态资产转化为可审计、可备份、可迁移的合规数据。桌面端用 chrome://extensions 开启开发者模式即可见,再配一段 20 行 Node 脚本即可批量生成 CSV;企业可叠加 Workspace 策略报告,实现域级闭环。
建议你立刻做一次“基线快照”:关闭浏览器→跑脚本→存 CSV+CRX→扔进加密仓库。下次换机或年审时,只需 Diff 一行命令,就能知道“谁偷偷装了新扩展”,把风险挡在上线之前。
相关标签


