Sources: Web.Cafe社群讨论, 2026-05-13 Raw: 2026-05-13-安全警钟-shipany模板泄露致密钥被盗刷 Updated: 2026-08-22
Overview
2026-05-13 社群发布安全警示:shipany-template-two 模板存在配置泄露 Bug,会导致数据库中的密钥(如 Google Cloud Key)暴露在前端页面源码中,已有群友因此被盗刷额度。本文记录事件经过、根因分析、修复方法,以及围绕 Vibe Coding 安全性的反思——AI 生成的代码同样需要密钥管理与调用链审计。
事件经过:模板配置泄露导致密钥被盗刷
哥飞在几乎所有群里同步发布了紧急安全提醒:
「shipany-template-two 有一个配置泄露 Bug,会导致 Config 表里的数据泄露,已经有群友因为泄露 Google Cloud Key 而导致额度被刷」
群友反馈的受影响案例:
- 袁骏:突然收到 Google 邮件说密钥泄漏了,被消耗 62 美金
- 兰博:上个月也发现了同样问题,泄漏了 Stripe Key(原话:「这个问题我上个月也发现了」)
事件处置:豆总已修复该 Bug,哥飞呼吁所有人立即更新代码、轮换已暴露的密钥。
根因分析
M 给出的技术分析:sign-in/page.tsx 调用了 getConfigs(),并将完整 config 对象传给 Client Component:
「sign-in/page.tsx 调用了 getConfigs() 并将完整 config 对象传给 Client Component」
根因本质:把服务端完整的配置对象(含密钥)直接传给了前端组件。凡是在前端源码里出现的字符串,任何访问页面的人都能看到——包括 Google Cloud Key、Stripe Key 等敏感密钥。
修复方法:public config 白名单
廖生分享了一份详细的 Codex 修复提示词,指导如何修复此类问题:
- 建立安全的 public config 白名单:只把前端真正需要的公开配置项传给 Client Component,密钥等敏感字段一律留在服务端
- 验证修复效果:检查页面源码,确认密钥不再出现
通用处置原则:
- 立即更新代码,拉取修复后的模板版本
- 轮换已暴露的密钥(Google Cloud Key、Stripe Key 等)——密钥一旦出现在页面源码中,就等于公开了
- 上线前检查页面源码,确认无密钥、无完整 config 对象泄露
Vibe Coding 安全反思
围绕该事件,群友对 AI 辅助编程的安全性展开了讨论:
- Halun 描述了典型的开发心态循环:网站上线觉得离财富自由越来越近,过几天发现 Bug,开始修,开始失望
- 大兴的调侃点出了 AI 编程的双刃剑:
「AI是能力放大器,原来一个人写bug速度慢,现在AI加持,写bug速度更快了」
- 睡觉想飞分享的实践方法:
「我现在每次写完一个功能修改都会用 codex 去审计调用链,问题少很多」
核心教训:AI 生成代码速度越快,越要补上安全审计环节——密钥管理(public config 白名单、敏感字段不进前端)和调用链审计应成为 Vibe Coding 的固定动作。