securitylisted
Install: claude install-skill pcliangx/AppGenesisForge
# Security Baseline
## Security
团队安全基线(基于 OWASP Top 10),开发者实现时必须遵守,code-reviewer 审查时逐条核对:
- [ ] 所有查询使用参数化,禁止字符串拼接 SQL(SQL 注入)
- [ ] 输出编码、配置 CSP headers(XSS)
- [ ] shell 命令中无未清理的输入(命令注入)
- [ ] 认证和授权在每个受保护端点正确执行
- [ ] 不硬编码密钥、凭证或 API key
- [ ] 敏感数据不入日志,错误信息不暴露堆栈或内部细节
- [ ] 输入验证在系统边界做(用户输入、外部 API 响应)
- [ ] 公共端点配置限流
- [ ] CORS 配置正确(白名单源,不用 `*` 配 `credentials: true`)
- [ ] 依赖无已知关键 CVE(定期 `npm audit` / `pip-audit` 等扫描)
## Tool-level Hard Constraints
本节是**项目级实现回链**——本 standards 文件保留团队通用安全基线,具体 hook 拦截清单作为项目级实现位于 `CLAUDE.md` "Tool Boundaries" 节。
### 四层 Hook 防御(注册位置:`.claude/settings.json` + `.git/hooks/pre-commit`)
> 前 3 层运行时(agent 工具调用时拦截)+ 第 4 层 commit 时(防 Edit/Write 绕过 prompt 扫描)。
| 层 | 时机 | 文件 | 行为 | 防御目标 |
|---|---|---|---|---|
| 1. Bash 拦截 | `PreToolUse` (matcher: `Bash`) | `.claude/hooks/block-dangerous-bash.sh` | exit 2 硬阻断 | 防 agent 跑出毁灭性命令(`rm -rf`、`DROP TABLE/DATABASE/SCHEMA`、`git push --force`、`git reset --hard`) |
| 2. Secret 扫描 | `UserPromptSubmit` | `.claude/hooks/scan-secrets.sh` | exit 2 硬阻断 | 防用户把 API key / Token / PEM 私钥粘进对话;模式覆盖 AWS / GitHub / OpenAI / Anthropic / Google / Slack / DeepSeek / Doubao / Qwen / MiniMax |
| 3. 工具输出净化 | `PostToolUse` (matcher: `WebFetch\|WebSearch\|Read\|Bash\|mcp__.*`) | `.claude/hooks/sanitize-tool-output.sh` | exit 0 + stderr WARNING(软告警,不阻断) | 防外部内容夹带的 prompt injection 指令被 agent 当成系统提示执行(含所有 MCP 工具输出) |
**回归测试**:
- `.claude/hooks/test-block-dangerous-bash.sh`(73 用例)
- `.claude/hooks/test-scan-secrets.sh`(35 用例,覆盖 scan-secret