密钥、密码提交到 Git 了怎么办提示词(先吊销轮换,再评估影响、清理历史、加防护)
发现 API 密钥、数据库密码、访问令牌被提交进 Git 仓库(甚至已经推送到公开仓库)时用:AI 按「止损 → 评估 → 清理 → 预防」的顺序给出应急清单,强调第一步是立即吊销并更换密钥,而不是先忙着改写 Git 历史。
通用大模型 对话模型通用
我不小心把密钥提交到了 Git 仓库,请你作为安全应急负责人,带我按正确顺序处理。 - 泄露的是什么:[泄露内容](例:云服务访问密钥、数据库密码、支付平台密钥) - 仓库可见性:[仓库可见性](可选:公开/私有/不确定) - 是否已推送到远程:[是否已推送] - 提交后经过了多久:[经过时间] - 这个仓库有哪些人和系统能访问:[访问范围](例:团队 10 人、CI 系统、已被他人复刻) 请按以下顺序给出清单,每一步说明为什么要先做它: 1. 立即止损(最先做,不要等清理完 Git 历史): - 到对应平台吊销或停用泄露的密钥,生成新的密钥; - 更新所有使用这个密钥的地方(服务器配置、CI 密钥、团队成员本地环境),确认业务恢复正常; - 说明为什么「删掉文件再提交一次」或「改写历史」都不能代替吊销:公开仓库可能已被自动化程序扫描抓取,复刻和本地副本也保留着历史。 2. 评估影响: - 到对应平台查看这个密钥在泄露时间段内的使用记录与账单,是否有异常调用; - 这个密钥的权限范围有多大,能访问哪些数据; - 如果涉及用户数据可能被访问,提醒我按公司流程上报安全与法务团队。 3. 清理仓库: - 在当前代码中改为从环境变量或密钥管理服务读取; - 是否需要改写历史:权衡利弊(改写历史需要所有协作者重新同步);需要时推荐的工具和步骤; - 代码托管平台上可能还需要的额外处理(例如缓存的视图、已有的拉取请求)。 4. 预防: - 在 .gitignore 中忽略本地配置文件,提供不含真实值的示例配置文件; - 提交前的密钥扫描钩子、代码托管平台的密钥扫描与推送保护; - 使用权限更小、可以设置有效期的密钥。 输出成可以逐项勾选的清单,并给出相关命令。各平台吊销密钥的具体入口以平台官方文档为准。
高亮处换成你自己的内容:[泄露内容]、[仓库可见性]、[是否已推送]、[经过时间]、[访问范围]
ChatGPT Plus 充值
已被复制 0 次
使用说明
怎么填变量:[仓库可见性] 和 [经过时间] 决定紧急程度:公开仓库中的密钥可能在几分钟内被自动化程序扫描到,必须马上吊销。[访问范围] 如果包括「已被他人复刻」,改写历史的意义就更小了,吊销是唯一可靠的办法。
常见坑:
- 第一反应是删除文件、强制推送改写历史,花了半天,却没有吊销密钥。密钥一旦公开过,就应该视为已经泄露。
- 只在代码里换了新密钥,又直接写死在代码中提交,问题原样重现。改为从环境变量或密钥管理服务读取。
- 吊销后忘记更新 CI 或其他服务器上的配置,导致线上服务中断。吊销前先列出所有使用这个密钥的地方。
追问技巧:追问「帮我写一个提交前扫描密钥的配置」,或「把项目里所有写死的配置项整理出来,改造成环境变量并生成示例配置文件」。
示例输出
示例,仅供参考(节选)
第 1 步:立即止损
- 在云平台控制台停用泄露的访问密钥,创建新的密钥,权限只保留实际需要的范围;
- 更新:生产服务器环境变量、CI 中的仓库密钥、本地开发配置;
- 验证:业务接口正常、旧密钥调用返回鉴权失败。
第 3 步:清理仓库
bash
# 当前代码改为读取环境变量后,忽略本地配置文件
echo ".env" >> .gitignore
git rm --cached .env
git commit -m "chore: 移除本地配置文件,改为环境变量"
是否改写历史:私有仓库、协作者少时可以考虑;公开仓库即使改写了历史,也必须以吊销密钥为准。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~