对当前分支的待审变更进行安全评审,检测密钥泄露、SQL注入、XSS、SSRF、权限绕过、危险依赖六类漏洞,生成风险分级报告并在用户批准后修复。适用于PR合并、对外开源、事故复盘。触发词:安全评审、security review、漏洞检查、密钥扫描、我的代码...
火一五安全评审技能 v1.0是一项面向实际任务的技能,主要用于六类漏洞矩阵 + 严重度分级 + 修复建议 — 青岛火一五信息科技有限公司;一、触发场景;
"合并前做安全检查";"看看有没有 SQL 注入";范围 :默认 git diff main...HEAD (当前分支相对主干的全部改动);用户可指定文件或 commit 范围。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
六类漏洞矩阵 + 严重度分级 + 修复建议 — 青岛火一五信息科技有限公司
范围:默认 git diff main...HEAD(当前分支相对主干的全部改动);用户可指定文件或 commit 范围。
产出:六类漏洞清单 + CVSS-like 严重度 + 每条修复建议 + 与 CWE 对照。
| 检查项 | 信号 |
|---|---|
| 硬编码 API key / token | /api[_-]?keys*[:=]s*["']([A-Za-z0-9_-]{20,})["']/i |
| 硬编码密码 / JWT secret | passwords*[:=]s*["'][^"']{6,}["']、jwt.*secret.*= |
.env 被提交 |
git log --all -- .env 有记录 |
| 日志打印敏感字段 | console.log.*password、logger.*token |
| 提交信息含密钥 | 扫 git log --all --oneline 的 message |
| Cloud 密钥格式特征 | AKIA...(AWS)/ ya29....(Google)/ ghp_... / npm_... |
| 检查项 | 信号 |
|---|---|
| SQL 拼接 | `SELECT ... ${...}`、+ userInput + |
| NoSQL 注入 | 未校验的 $where / $regex |
| 命令注入 | exec(userInput) / 模板字符串传 shell |
| 路径遍历 | path.join(root, userInput) 未 path.normalize + 边界校验 |
| LDAP / XPath / 模板注入 | 同样是拼接 |
| 检查项 | 信号 |
|---|---|
dangerouslySetInnerHTML |
React 直接接用户输入 |
innerHTML = userInput |
原生 DOM |
v-html 未过滤 |
Vue |
| 邮件 / 短信模板直接插值 | 出站 XSS(钓鱼) |
| 未设 CSP header | 响应头缺失 |
| 检查项 | 信号 |
|---|---|
fetch(userURL) 无白名单 |
可被打到 169.254.169.254(云 metadata) |
允许 file:// / gopher:// 协议 |
scheme 未校验 |
| DNS rebinding 窗口 | 二次解析 |
| 检查项 | 信号 |
|---|---|
| 路由缺鉴权中间件 | Express / Next API route 裸接 |
| 水平越权 | 查询时没带 userId = currentUser.id |
| 直接对象引用(IDOR) | GET /api/order/:id 不校验归属 |
| JWT 不校验 signature | jwt.decode 代替 jwt.verify |
| 弱密码 / 默认账号残留 | grep admin/admin123 |
| 检查项 | 信号 |
|---|---|
| 已知 CVE 依赖 | 建议用户跑 npm audit / pnpm audit |
| 从 git / tarball 装的依赖 | package.json 有 git+https://... |
| postinstall 脚本 | 可执行任意代码 |
typosquatting 风险包 |
lodas / requets 之类 |
git diff main...HEAD --name-onlycommit 范围 / 特定文件 / 整个项目npm audit — 返回命令让用户跑(避免长时间阻塞)## 安全评审报告 —vs main **扫描范围**:12 个文件变更 · 扫描时间 2s ### 🔴 Critical(1 项,必须修) 1. **[Secrets]** `src/config.ts:18` — 硬编码 OpenAI API key - 信号:`sk-proj-...` 匹配 - CWE-798(硬编码凭据) - 修复:移入 `.env`;**立刻在 OpenAI 后台 revoke 此 key** - 若已推送:`git filter-repo` 清历史 + force push ### 🟠 High(2 项) 2. **[Injection]** `src/api/search.ts:45` — SQL 拼接用户输入 3. **[Auth]** `src/api/order/[id].ts:12` — 缺归属校验(IDOR) ### 🟡 Medium(1 项) 4. **[XSS]** `components/Post.tsx:33` — dangerouslySetInnerHTML 渲染用户 markdown,未跑 DOMPurify ### 🟢 Low(1 项) 5. **[Dependency]** `package.json` — `lodash@4.17.15` 有 2 个 low CVE;建议升 4.17.21 ### 建议跑(用户执行) ```bash npm audit --production # 完整依赖漏洞 git log --all -p | grep -E "AKIA|ghp_|sk-proj" | head # 历史密钥扫描
--- ## 五、硬红线(绝不触碰) 1. **不自动 revoke 线上密钥** — 只提醒用户去后台操作 2. **不自动 `git filter-repo` 改历史** — 返回命令让用户自己执行(破坏性) 3. **不自动 `npm audit fix --force`** — 可能大版本跳跃,给命令让用户决定 4. **不 exec `npm audit`** — 禁 child_process 铁律,返回命令 5. **不把密钥明文打印在报告里** — 脱敏为 `sk-proj-***...last4` 6. **不私自连外网验证密钥是否生效** — 只做静态扫描 --- ## 六、与 huo15-openclaw-simplify 的边界 | 场景 | 用哪个 | |------|--------| | 只看安全 | **本技能** | | 只看代码质量 | `huo15-openclaw-simplify` | | 两者都看 + 给 PR 评论 | `huo15-openclaw-code-review` | --- ## 七、参考 CWE 速查 - CWE-798 硬编码凭据 - CWE-89 SQL 注入 - CWE-79 XSS - CWE-918 SSRF - CWE-639 IDOR - CWE-937 已知漏洞组件
相关专题
热门下载
相关下载
精品课程
共1课时 | 154人学习
共0课时 | 0人学习
共1课时 | 201人学习