sellisrev/git-security-scan

GitHub: sellisrev/git-security-scan

零依赖的 Git pre-commit 安全扫描脚本,用纯 Bash + grep 检测敏感信息和常见安全漏洞。

Stars: 0 | Forks: 0

# git-security-scan 零依赖的 secret 检测和 git 仓库安全扫描器。纯 bash + grep 实现 —— 无需外部工具。 ## 功能说明 在每次 `git commit` 时自动运行(通过 pre-commit hook),也可选择在 `npm pack`/`npm publish` 之前运行。四阶段扫描: 1. **危险文件名** — 阻止 `.env`、`.claude.json`、`id_rsa`、`*.pem`、`*.key`、`*.pfx`、`*.tfvars` 等。 2. **Secret 模式** — 25+ 正则表达式模式,涵盖 API key(AWS、GitHub、Stripe、OpenAI、Anthropic、Slack 等)、私钥头部、数据库连接字符串、密码/token 赋值 3. **安全检查** — `eval()`、`innerHTML`、`document.write`、SQL 注入模式、shell 注入、禁用 TLS、弱加密、不安全 HTTP、禁用 CORS、debug 模式 4. **高熵字符串** — 对代码中可疑的长 hex/base64 字符串发出警告 Secrets 会**阻止**提交。安全问题会产生**警告**,但允许提交。 ## 快速安装 ``` git clone https://github.com/sellisrev/git-security-scan.git cd your-project bash /path/to/git-security-scan/install.sh . ``` 或手动安装: ``` # 复制 scanner mkdir -p scripts cp /path/to/git-security-scan/scripts/scan-secrets.sh scripts/ chmod +x scripts/scan-secrets.sh # 安装 pre-commit hook cp /path/to/git-security-scan/hooks/pre-commit .git/hooks/pre-commit chmod +x .git/hooks/pre-commit ``` ## 使用方法 ``` # 扫描暂存文件 (pre-commit hook 的作用) bash scripts/scan-secrets.sh --staged # 扫描所有已跟踪文件 (适用于 CI 或 pre-pack) bash scripts/scan-secrets.sh --all # 扫描特定文件 bash scripts/scan-secrets.sh --files src/config.js lib/auth.ts ``` ## npm 集成 添加到你的 `package.json`: ``` { "scripts": { "prepack": "bash scripts/scan-secrets.sh --all", "prepublishOnly": "bash scripts/scan-secrets.sh --all", "security:scan": "bash scripts/scan-secrets.sh --all" } } ``` ## .gitignore 模板 包含一个全面的 `.gitignore` 模板,位于 `gitignore.template`。将其复制到你的项目: ``` cp /path/to/git-security-scan/gitignore.template .gitignore ``` ## 检测的 secret 类型 | 类别 | 示例 | |----------|---------| | 云服务商 | AWS `AKIA...`、Google `AIza...`、Azure `AccountKey=...` | | AI/ML | Anthropic `sk-ant-...`、OpenAI `sk-...`、Gamma `sk-gamma-...` | | 代码托管 | GitHub `ghp_`、`gho_`、`ghu_`、`github_pat_`、GitLab `glpat-` | | 支付 | Stripe `sk_live_`、`pk_live_` | | 通讯 | Slack `xox...`、Discord webhooks、Twilio `SK...`、SendGrid `SG.` | | 包仓库 | npm `npm_`、PyPI `pypi-` | | 私钥 | RSA、DSA、EC、OpenSSH、PGP key 头部 | | 连接字符串 | `mongodb://`、`postgres://`、`mysql://`、`redis://`、JDBC | | 通用 | 密码/secret/token 赋值、Authorization 头部 | ## 环境要求 - Bash 4+(Windows 上的 Git Bash 亦可) - grep 支持 `-E`(扩展正则表达式) - git ## 许可证 MIT
标签:API密钥保护, CI/CD安全, DevSecOps, Git安全扫描, Git钩子, Llama, LLM应用, LNA, NPM脚本, Pre-commit Hook, Shell注入, SQL注入检测, 上游代理, 云安全监控, 安全助手, 应用安全, 开发安全, 暗色界面, 源码卫士, 熵值检测, 知识库安全, 秘密扫描, 纯Bash实现, 网络安全, 隐私保护, 零依赖, 静态分析