Hayatelin/secscan-skill

GitHub: Hayatelin/secscan-skill

一个零依赖的 Python 安全扫描 skill,用于在 AI 编程代理提交代码前检测硬编码密钥、危险函数和 SQL 注入等常见安全问题。

Stars: 0 | Forks: 0

🛡️ secscan

阻止你的 AI 编程代理泄露密钥和使用 eval()
一个可直接插入的预发布安全 skill,适用于 Claude Code、Cursor、Codex & Gemini CLI —— 只需一个标准库 Python 文件,零依赖,零 API 密钥

CI zero deps python license works with stars

secscan demo

## 繁體中文摘要 AI 寫程式很快,但很容易**把密鑰寫死、留下 `eval()`、用 `shell=True`、串 SQL 字串**。 **secscan** 是一個給 AI 編程代理用的「出貨前安全預檢 skill」:一個純標準函式庫的 Python 檔案,**零依賴、零 API 金鑰**,在 commit 或開 PR 前掃一遍,抓出最常見的安全地雷。 直接放進 Claude Code / Cursor / Codex / Gemini CLI 的 skill 流程即可。 ## 它能检测到什么 | 严重程度 | 示例 | |---|---| | 🔴 **高** | 硬编码的 API 密钥 / AWS / GitHub / Slack / OpenAI 密钥和私钥,`eval()`/`exec()`,`os.system`,`shell=True`,由 f-string 拼接的 SQL | | 🟠 **中** | 赋值给字符串字面量的凭据,`pickle.loads`,未使用 `SafeLoader` 的 `yaml.load`,SQL 字符串拼接 | | 🟡 **低** | `md5`/`sha1`,用于安全值的 `random`,纯文本 `http://` | ## 快速开始 ``` git clone https://github.com/Hayatelin/secscan-skill.git python secscan-skill/secscan.py . # scan the current project python secscan-skill/secscan.py src --min-severity high python secscan-skill/secscan.py app.py --json # machine-readable ``` 无需 `pip install`。要求 Python 3.8+。当发现问题时退出代码为非零,因此可以直接接入 CI 或 pre-commit hook。 ``` $ python secscan.py examples/vulnerable.py [HIGH] examples/vulnerable.py:8 [os-system] os.system call - shell command execution [HIGH] examples/vulnerable.py:12 [sql-fstring] SQL built with an f-string - likely SQL injection [MED ] examples/vulnerable.py:5 [generic-secret] Hardcoded credential assigned to a literal string secscan: 9 issue(s) - 5 high, 2 medium, 2 low ``` ## 作为代理 skill 使用 本仓库本身就是一个 **[Agent Skill](SKILL.md)**。将你的代理指向它,它将在 commit 或开启 PR 之前自动运行 secscan。 - **Claude Code:** 将 `SKILL.md` 和 `secscan.py` 放入你项目的 `.claude/skills/secscan/` 文件夹(或你的 skills 市场)中。代理会按需加载它。 - **Cursor / Codex / Gemini CLI:** 添加一条规则,例如 *“在完成任何代码更改之前,运行 `python secscan.py ` 并修复所有高严重程度的发现。”* 为你已经审查并希望允许的行添加 `# secscan:ignore`。 ## 通过 pip 安装 ``` pip install secscan-skill # provides the `secscan` command secscan . --min-severity high ``` ## 作为 GitHub Action 使用 ``` - uses: Hayatelin/secscan-skill@v1 with: path: . min-severity: high ``` 免安装替代方案(只需 curl 该脚本): ``` - run: | curl -sSfL https://raw.githubusercontent.com/Hayatelin/secscan-skill/main/secscan.py -o secscan.py python secscan.py . --min-severity high ``` ## 作为 pre-commit hook 使用 ``` # .pre-commit-config.yaml repos: - repo: https://github.com/Hayatelin/secscan-skill rev: v1.0.0 hooks: - id: secscan ``` ## 工作原理(及其局限性) secscan 是一个快速的**启发式**扫描器(基于文本的 regex 规则)—— 它旨在作为零阻力的第一道防线,而不是完整 SAST 工具的替代品。它倾向于以极低的设置成本捕获明显的、高影响的错误。非常欢迎提交添加规则或减少误报的 PR。 ## 许可证 MIT — 见 [`LICENSE`](LICENSE)。© 2026 VictorLin。
标签:AI编程助手, DOE合作, Python, SOC Prime, 开发工具, 无后门, 逆向工具, 错误基检测, 静态代码分析