检测代码中硬编码敏感信息的五种方法:一、用semgrep等静态分析工具扫描关键词及赋值模式;二、用python正则脚本递归匹配高风险字面量;三、通过pre-commit钩子在提交前拦截;四、借助vs code插件实时高亮提示;五、在ci流水线(如github actions)中自动化检查并阻断不安全合并。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在代码中存在硬编码的密码、密钥或其他敏感信息,可能引发严重的安全风险。以下是检测此类敏感信息的多种方法:
一、使用静态代码分析工具扫描
静态分析工具可在不运行代码的前提下,通过词法与语义规则识别潜在的敏感字符串模式,如“password”、“secret_key”、“api_key”等关键词及其常见变体或赋值结构。
1、安装Semgrep工具:执行命令 pip install semgrep。
2、运行预定义规则集:执行命令 semgrep --config p/ci --exclude="node_modules" .。
3、自定义敏感模式:创建YAML规则文件,匹配形如 password = "xxx" 或 SECRET_KEY = '.*' 的赋值语句。
二、基于正则表达式的本地脚本扫描
该方法适用于轻量级、快速验证场景,通过编写可复用的正则表达式遍历源码文件,定位高风险字面量。
1、准备Python脚本,导入 re 和 pathlib 模块。
2、定义敏感模式列表,包括 r'(?i)(password|passwd|pwd|secret|key|token|auth|apikey|jwt|oauth)\s*[:=]\s*['"]([^'"]+)['"]' 等。
3、递归读取所有 .py、.js、.java 文件,对每行执行匹配并输出文件路径、行号及匹配内容。
三、集成Git钩子进行提交前拦截
利用pre-commit钩子,在代码提交到仓库前自动触发检测,防止敏感信息意外进入版本历史。
1、在项目根目录初始化pre-commit配置:创建 .pre-commit-config.yaml 文件。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
2、添加 git-secrets 或 gitleaks 作为hook,例如指定 repo: https://github.com/zricethezav/gitleaks。
3、执行 pre-commit install 启用钩子;后续每次 git commit 将自动扫描新增/修改行。
四、使用IDE插件实时高亮提示
在开发过程中即时反馈敏感信息位置,降低人工疏漏概率,提升编码阶段的安全意识。
1、在VS Code中安装扩展 Secret Scanner 或 TruffleHog for VS Code。
2、重启编辑器后,插件将自动扫描打开的文件,对匹配到的密钥格式(如AWS access key、Base64编码密钥)添加波浪线下划线。
3、点击提示可查看匹配详情,并跳转至对应行;部分插件支持一键模糊化替换为环境变量引用。
五、构建CI流水线中的自动化检查环节
将敏感信息检测嵌入持续集成流程,在每次PR合并前强制执行,确保主干代码始终符合安全基线。
1、在GitHub Actions工作流中添加新job,使用 docker://ghcr.io/gitleaks/gitleaks:latest 镜像。
2、配置运行参数:指定 --source=. --report-format=json --report-file=gitleaks-report.json。
3、设置失败条件:当检测到 critical 或 high 级别结果时,使CI任务退出非零状态并阻断合并。










