mcpField
E
extension-analyze

extension-analyze

github.com/quangpl安全64221 次安装7 周前更新
代码仓库

关于 extension-analyze

用于审计现有 Chrome 扩展的安全与合规技能,面向扩展开发者。它按框架识别、配置和代码扫描、依赖审计及严重级别整理结果。

主要功能

  1. 01识别扩展框架与根目录
  2. 02检查清单权限和 CSP
  3. 03扫描常见不安全代码模式
  4. 04运行依赖漏洞审计
  5. 05按严重级别汇总发现

适用场景

  1. 01审查扩展权限和内容安全策略
  2. 02查找潜在 XSS 与硬编码密钥
  3. 03整理发布前的安全审计结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/quangpl/browser-extension-skills --skill extension-analyze

安装后在 Claude Code 中输入/extension-analyze确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
best-practices-checklist.md
common-vulnerabilities.md
cws-compliance-checklist.md
security-checklist.md

详细介绍

扩展分析(安全与合规审计员)

🚀 升级到高级版 访问 https://app.extensionbooster.net/dashboard/services/extension-ai-kit 获取高级版

审计现有的 Chrome 扩展。不要只做说明——请执行此工作流。

工作流(执行此流程)

步骤 1:定位扩展根目录并检测框架

如果未提供路径,请向用户询问。检测框架:

ls wxt.config.ts crxjs.config.ts vite.config.ts manifest.json 2>/dev/null
  • CRXJS:清单会自动生成;请检查 package.json 和 crxjs.config.ts
  • WXT:检查 wxt.config.ts 中的 manifest 部分
  • Vanilla/CRXJS:直接检查 manifest.json
步骤 2:扫描 manifest.json(或等效配置)
# Check MV version, permissions, host_permissions, CSP, web_accessible_resources
cat <ext>/manifest.json | jq '{manifest_version, permissions, host_permissions, content_security_policy, web_accessible_resources}'
步骤 3:快速 grep 扫描
# XSS vectors
grep -rn "innerHTML\|outerHTML\|document\.write\|insertAdjacentHTML" <ext>/src --include="*.ts" --include="*.js"

# Unsafe patterns
grep -rn "eval(\|new Function(\|setTimeout.*string\|setInterval.*string" <ext>/src

# Hardcoded secrets
grep -rn "api_key\|apiKey\|secret\|password\|token" <ext>/src --include="*.ts" --include="*.js" | grep -v "\.test\." | grep -v "node_modules"

# HTTP (non-HTTPS) calls
grep -rn "http://" <ext>/src --include="*.ts" --include="*.js"

# Message handler sender validation
grep -rn "onMessage\|addListener" <ext>/src | grep -v "node_modules"

# Remote code loading
grep -rn "importScripts\|fetch.*\.js\|eval\|chrome\.scripting\.executeScript" <ext>/src
步骤 4:检查 CSP 配置
  • MV3 默认 CSP:script-src 'self'; object-src 'self'
  • 标记任何 unsafe-inline、unsafe-eval 或 http: 来源
  • 确认没有远程脚本来源
步骤 5:依赖项审计
cd <ext> && npm audit --json | jq '.vulnerabilities | to_entries[] | {pkg: .key, severity: .value.severity}'
步骤 6:生成报告

按严重程度分组输出发现。请参阅下方的输出格式。


严重程度等级

等级标准
CriticalRCE、数据外泄、加载远程代码、使用不可信输入调用 eval
HighXSS、缺少发送方验证、源代码中包含 API 密钥、HTTP API 调用
Medium权限范围过宽、CSP 使用 unsafe-inline、同步存储机密信息
Low缺少错误处理、未使用 TypeScript、生产环境中存在 console.log

大多数扩展中发现的十大问题

  1. innerHTML 使用来自页面的数据(XSS)—— High
  2. onMessage 未检查发送方来源—— High
  3. 不需要时仍设置 <all_urls> 主机权限—— Medium
  4. CSP 中存在 unsafe-inline 或 unsafe-eval—— Medium/Critical
  5. 源代码中硬编码 API 密钥—— Critical
  6. 使用 eval() 或 new Function()—— Critical
  7. chrome.storage.sync 存储敏感数据—— Medium
  8. 使用 HTTP 端点而非 HTTPS—— High
  9. 加载远程脚本(违反 MV3 规定)—— Critical
  10. web_accessible_resources 缺少限制—— Medium

输出格式

## Extension Audit Report: <name> v<version>
Date: <date> | MV: <2|3>

### Summary
Critical: X | High: X | Medium: X | Low: X

### Findings

#### [CRITICAL] API Key Exposed in Source
File: src/background.ts:42
Pattern: `const API_KEY = "sk-..."`
Fix: Move to environment variable or user-provided settings
Reference: references/common-vulnerabilities.md#4

...

### Passed Checks
- CSP: No unsafe-inline/eval ✓
- HTTPS: All API calls use HTTPS ✓

参考资料

  • references/security-checklist.md — 完整的安全审计清单
  • references/best-practices-checklist.md — 性能、用户体验、无障碍性、CWS
  • references/common-vulnerabilities.md — 漏洞模式及 grep/修复方法
  • references/cws-compliance-checklist.md — Chrome 网上应用店政策合规性
  • Chrome 权限列表
  • Chrome 扩展文档

相关技能

  • extension-manifest — 生成/验证 manifest.json
  • extension-create — 搭建新扩展的框架
  • extension-publish — 商店提交清单

评论

支持 Markdown