FlyAI Env Guardian

自动扫描代码提交中的敏感信息,防止密钥泄露。

已扫描
适合谁
前端/后端开发人员、DevOps团队
不适合谁
无代码仓库管理需求的用户、仅做静态页面展示的开发者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @dingtom336-gif/flyai-env-guardian

Skill 说明

命令、参数、文件名以原文为准

FlyAI Env Guardian

开发团队的自动化环境变量保护工具。扫描代码库中的敏感信息,验证 .env 文件的规范性,并在代码提交至版本控制前防止凭据意外泄露。

使用场景

在以下情况启用此技能:

  • 开发者即将提交可能包含密钥或 API 密钥的更改
  • 新项目初始化时需要建立 .env 安全规范
  • 对现有代码库进行敏感凭证暴露审计
  • 配置处理敏感环境变量的 CI/CD 流水线
  • 审查拉取请求(Pull Request)中是否存在潜在的密钥泄露

威胁模型

高风险模式

模式示例风险等级
硬编码的 API 密钥const KEY = sk-proj-abc123严重
包含密码的数据库连接地址postgres://user:pass@host/db严重
代码中的 AWS 凭证AWS_SECRET_ACCESS_KEY = ...严重
JWT 秘钥JWT_SECRET = mysecret
私钥内容BEGIN RSA PRIVATE KEY严重
OAuth 令牌github_pat_..., ghp_..., gho_...

中等风险模式

模式示例风险等级
内部服务地址http://internal-api.corp:8080中等
带端口的 IP 地址192.168.1.100:3306中等
配置中的邮箱地址admin@company.com

扫描流程

  1. 提交前扫描:使用正则匹配检查已暂存文件中的敏感模式
  2. 文件类型过滤:仅关注源码文件(.ts, .js, .py, .go, .rs, .java, .env*
  3. 信息熵分析:在非测试文件中标记高熵字符串(可能是随机生成的令牌)
  4. 已知模式匹配:对比超过 40 种常见密钥格式(AWS、GCP、Azure、Stripe、Twilio 等)
  5. .gitignore 验证:确保 .env 文件已被正确忽略
  6. 历史扫描:可选地深度扫描 Git 历史记录,查找之前提交过的敏感信息

修复建议

发现敏感信息后采取以下措施:

即时响应

  • 阻止提交并显示清晰错误提示
  • 明确指出包含敏感信息的文件及行号
  • 建议将值移至 .env 文件,并通过 process.env 引用

后续操作

  • 若密钥已被提交,建议立即更换凭证
  • 生成包含占位符的 .env.example 文件
  • 补充缺失的 .gitignore 条目
  • 设置 git-secretspre-commit 钩子以实现持续防护

环境文件规范

必需结构

  • .env:本地开发使用的值(绝不提交)
  • .env.example:带占位符的模板文件(可提交)
  • .env.test:测试环境配置值(可提交,不含真实密钥)
  • .env.production:生产环境配置值(绝不提交,由 CI/CD 管理)

命名规范

  • 所有变量名使用大写蛇形命名法(UPPER_SNAKE_CASE)
  • 添加服务名前缀:DATABASE_URLREDIS_HOSTSTRIPE_SECRET_KEY
  • 每个变量添加内联注释说明用途
  • 相关变量按功能分组,并添加节标题分隔

CI/CD 集成

GitHub Actions

  • 验证构建产物中不包含 .env 文件
  • 检查工作流中所有必需的环境变量均已设置
  • 扫描 PR 的差异内容,检测新增的敏感信息

Docker

  • Dockerfile 中禁止使用 ENV 存储密钥
  • 使用 Docker Secrets 或运行时挂载 .env 文件
  • 扫描构建镜像,检测是否嵌入了凭据

配置说明

该技能支持读取 .envguardian.json 配置文件:

  • customPatterns: 自定义正则表达式,用于扩展扫描规则
  • ignoreFiles: 路径列表,指定跳过扫描的文件或目录
  • severityThreshold: 报告的最低风险等级(low, medium, high, critical)
  • autoFix: 是否自动为 .gitignore 添加条目
DG
@dingtom336-gif

已收录 1 个 Skill

相关推荐