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 修复提示词,指导如何修复此类问题:

  1. 建立安全的 public config 白名单:只把前端真正需要的公开配置项传给 Client Component,密钥等敏感字段一律留在服务端
  2. 验证修复效果:检查页面源码,确认密钥不再出现

通用处置原则:

  • 立即更新代码,拉取修复后的模板版本
  • 轮换已暴露的密钥(Google Cloud Key、Stripe Key 等)——密钥一旦出现在页面源码中,就等于公开了
  • 上线前检查页面源码,确认无密钥、无完整 config 对象泄露

Vibe Coding 安全反思

围绕该事件,群友对 AI 辅助编程的安全性展开了讨论:

  • Halun 描述了典型的开发心态循环:网站上线觉得离财富自由越来越近,过几天发现 Bug,开始修,开始失望
  • 大兴的调侃点出了 AI 编程的双刃剑:

「AI是能力放大器,原来一个人写bug速度慢,现在AI加持,写bug速度更快了」

  • 睡觉想飞分享的实践方法:

「我现在每次写完一个功能修改都会用 codex 去审计调用链,问题少很多」

核心教训:AI 生成代码速度越快,越要补上安全审计环节——密钥管理(public config 白名单、敏感字段不进前端)和调用链审计应成为 Vibe Coding 的固定动作。

See Also