乐于分享
好东西不私藏

用Claude写个(App、小程序)就敢直接上线的人,可能已经违法了!

用Claude写个(App、小程序)就敢直接上线的人,可能已经违法了!

本文主要讲的是某个国外的开发者,开发了一个APP结果涉嫌违反欧盟合规隐私法律吃了大亏的事情。

这里想跟您说,如果你用AI写个自己的小程序、APP等必然也会涉及文中的这些问题,当然并非欧盟法律,是中国法律!所以,上线前还是建议采取文中所给的提示,把这些要求写到你的prompt里面,当然这个prompt的存在并不会解决所有问题,但是也会解决大部分问题(文章最后,本人会给出根据作者总结的prompt示例,大家可以自行参考,或在此基础上进一步发挥

Reddit 上一位干了 20 多年性能和安全的老兵 PaddleboardNut 发了篇帖子,开场就让人头皮发麻:

"I keep seeing people shipping apps built with vibe coding tools (Cursor,GPT,etc.and just pushing them live.That's fine…but also slightly terrifying."我一直在看人们用 vibe coding 工具做完 App 就推上线。这事挺好的……但也挺吓人的。"

他说自己不是要设门槛拦着大家,"有更多人能写代码是好事",但他见过的绝大多数翻车,不是什么高级攻击——全是基础到不能再基础的疏忽

于是就有了这份「上线前最后一件事」清单。不是安全专家的全面审计,是任何一个用 AI 写代码的人都应该在按"发布"之前过一遍的 11 个检查点。


谁在说这话?

PaddleboardNut 在帖子里亮了自己的底:

"I've been writing/debugging code for 20+years and spent a chunk of time working specifically on performance+security for production systems."我写代码、修 Bug 20 多年了,一大块时间专门做生产系统的性能和安全。"

他不是来卖课的。整篇帖子与其说是"教程",不如说是一个老工程师看着一群新人往坑里跳,实在憋不住了。

帖子里有一句话特别实在:

"You don't need to be perfect,but you do need to not be reckless."你不需要做到完美,但你不能做到鲁莽。"

下面这 11 条,按"漏了哪个后果最严重"重新排了序,分四组。


第一组:法律底线——漏了直接被告

① 收集用户数据?先写隐私政策

不是开玩笑。只要你收集任何用户数据——哪怕只是个邮箱注册——GDPR 之类的法规就已经适用了。

(原文:"If you're collecting any kind of user data,you're now in legal territory (GDPR,etc.).Most people don't think about this until it's too late."

很多人觉得"我就个小 App,没人管我"——等律师函到了再想就晚了。这里建议把欧盟的GDPR改成中国的法规名称,例如中华人民共和国网络安全法等,这里大家要举一反三。

② 搞清楚用户数据存在哪、怎么处理

不是"大概在数据库里某个地方"。你能说清楚吗:哪个服务器?哪个地区?谁有权限访问?有没有最基础的加密?

重点:隐私政策+数据存储,这两项不做不是"技术债",是法律风险。债可以慢慢还,风险爆了就是爆了。


第二组:安全基线——AI 能帮你修,但你没让它修

③ 检查安全 Headers

整张清单里性价比最高的可能就是这条。把下面这句 prompt 原样丢给 Claude 或 GPT:

"Review my app as a security specialist and make sure I have strong security headers and a solid baseline security posture"

两分钟,一行代码不用写,能挡住 CSP、X-Frame、HSTS 层面一堆常见攻击。

④ 按 OWASP 标准扫描一遍

Headers 只是第一道门。SQL 注入、XSS、认证绕过——OWASP Top 10 的老面孔,vibe coded 的 App 里满天飞。

prompt 也给你写好了:

"Review my app against OWASP standards and highlight vulnerabilities"

⑤ 专门查 SQL 注入、XSS、认证问题

AI 生成的代码有个特点:特别喜欢字符串拼接 SQL、在前端直接dangerouslySetInnerHTML用户输入。

第四条是广谱扫描,这一条是盯着三种最常见漏洞深挖。

⑥ .env 里的值绝不能出现在前端

AI 写前端代码时偶尔会"顺手"把环境变量引用带进来。你自己可能从没注意到——但任何一个打开 F12 的人都能看到。

重点:这四条你可以全让 AI 帮你做。prompt 复制粘贴等结果修。不需要自己是安全专家。


第三组:数据泄露——你"以为没暴露"的都在暴露

⑦ 检查 API 返回的数据是不是太多了

AI 写接口的经典操作:return user,把整张用户表全吐出去。密码哈希、手机号、邮箱——前端明明只用了user.name,但 Response 里什么都有。

⑧ 日志里绝对不能有密钥

调试时console.log(apiKey)日志传到第三方监控密钥泄露。桨板哥说这个链条"发生得太频繁了"

⑨ API Key 在前端 = 已经没了

全帖语气最重的一句:

"If your key is in the browser,assume it's already been taken."如果你的 Key 在浏览器里,默认它已经被偷了。"

不是"可能会被偷"。是默认已经被偷。任何人打开 DevToolsNetwork复制粘贴,三秒完事。


第四组:修好后,别忘了刹车

⑩ 密钥移到服务端,或走代理

修法一句话:前端你的后端/代理第三方 API。前端永远不直接拿 Key 调外部服务。

⑪ 加频率限制

vibe coding 做出来的 App,十个有九个没有 rate limit。有人写个脚本一跑,你下个月的饭钱就交给了 OpenAI。

没人会替你挡这刀。你自己加。


桨板哥把跟 AI 说的话都替你写好了

整篇帖子最值钱的不是"要检查什么"——是他说清楚了怎么让 AI 帮你检查 AI 写的代码

上面穿插了几条,这里再补两条完整版:

检查敏感数据泄露:

"Check my app for any credential or sensitive data leaks in frontend or API routes"

确认 API Key 没暴露:

"Ensure no API keys are exposed in frontend code or network calls"

流程是这样的:你用 Cursor 写完代码复制粘贴这些 prompt 丢给同一个 AIAI 检查 AI 生成的代码有没有安全漏洞。

2026 年最赛博朋克的质控流程了。


一个你不敢回答的问题

桨板哥在结尾问了一句:

"Curious,has anyone here actually had a security issue from something they shipped too quickly?"好奇问一句——有没有人真的因为上线太快出过安全事故?"

比整张清单更让人不安的,是这个问题大概率有答案,但没人敢在公开场合说。

他还提了两件事:自己写了个工具来自动化这些检查("手动审站太累了"),以及想在 TikTok/YouTube 上开直播当众拆站。

如果他真开了——可能会是今年最值得看的程序员直播。


本公众号作者给出的prompt示例(2例)

示例一(生成模型Gemini 3.2)

# Role你是一名资深的中国全栈软件架构师与首席信息安全官(CISO),精通《中华人民共和国个人信息保护法(PIPL)》、《中华人民共和国数据安全法》以及 OWASP 安全开发标准。你编写的每一行代码、设计的每一个架构,都必须将“安全”与“合规”置于最高优先级。# Core Directive请根据用户的需求编写程序/代码。在实现功能的同时,你必须强制执行以下【安全与合规红线】,不得有任何妥协:## 1. 数据隐私与合规 (Data Privacy & Compliance)*   **合规声明:** 若业务涉及收集用户数据,必须在合适位置显式设计、预留或提示隐私政策(Privacy Policy)声明接口或页面。*   **存储透明:** 明确并隔离用户数据的存储位置,设计合理的数据库架构与敏感数据加密存储方案。## 2. 网络与架构安全 (Network & Infrastructure Security)*   **安全响应头:** 所有 Web 服务或 API 必须配置基础的安全响应头(如 Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security 等)。*   **速率限制 (Rate Limiting):** 必须在 API 路由或中间件层面实现频率限制,防止分布式拒绝服务攻击(DDoS)、暴力破解以及 API 账单被恶意刷爆(API Billing Burn)。## 3. 代码级漏洞防护 (Code-Level Vulnerability Mitigation)*   **OWASP Top 10 防御:** 代码必须天然防御 OWASP 常见漏洞。*   **注入防护:** 严禁拼接 SQL,必须使用参数化查询(Parameterized Queries)或安全的 ORM 来防御 SQL 注入。*   **XSS 防护:** 严格对所有前端输入进行过滤,对输出进行上下文相关的 HTML/JS 编码(Sanitization & Encoding)。*   **认证与鉴权:** 涉及敏感操作或数据的接口,必须实现健壮的身份验证(Auth)与权限检查(越权漏洞防护)。## 4. 凭证与机密管理 (Secrets & Credentials Management)*   **环境隔离:** 严禁在代码中硬编码任何敏感凭证。所有配置必须从环境变量(.env)读取,且确保配置文件不被泄露或打包进生产环境。*   **架构解耦:** 绝不允许在前端代码中暴露任何第三方 API 密钥(API Keys)。所有密钥调用必须移至服务端(Server-side)处理,或通过安全的后端代理(Proxy)转发。## 5. 日志与数据防泄露 (Data Leakage Prevention)*   **API 响应审计:** 严格检查 API 返回的 JSON/数据结构,不得包含未脱敏的敏感信息(如用户密码、身份证号、内部系统路径等)。*   **日志净化:** 在任何日志(Logs)记录或错误捕获(Error Handling)逻辑中,必须通过中间件或脱敏函数自动移除/遮蔽 Token、Secrets、密码等敏感字段。# Output Requirement请直接输出符合上述所有安全合规要求的生产级代码。如果你在实现用户需求时应用了上述某些特定的安全机制(例如加入了 Rate Limiter、参数化查询或服务端代理),请在代码完成后进行简要的【安全设计说明】。

示例二(生成模型Claude Opus 4.7 (Fast)

小小的吐槽一下,这个prompt花了本人将近2$,😂🤣😂🤣,个人还是推荐这个,不愧是当前世界顶级模型,NB。

# 角色设定(Role)你是一名资深的安全开发工程师(Secure Software Engineer),同时具备以下专业背景:- 精通 OWASP Top 10 (2021/2023) 与 OWASP ASVS 安全编码规范- 熟悉中国《网络安全法》《数据安全法》《个人信息保护法(PIPL)》《信息安全技术 个人信息安全规范 GB/T 35273》- 熟悉 GDPR、ISO 27001、SOC 2 等国际合规框架- 具备 DevSecOps、SAST/DAST、密钥管理与零信任架构经验# 任务目标(Task)请根据我接下来提出的需求,编写/审查代码或系统设计方案。所有产出必须 **默认安全(Secure by Default)** 且 **合规优先(Compliance First)**,禁止为了功能便捷牺牲安全性。# 强制安全检查清单(Mandatory Security Checklist)在生成任何代码、API、配置或架构前,你必须逐项核对并在回复中明确说明执行情况:## 一、数据合规与隐私保护(Data Compliance & Privacy)1. **隐私政策(Privacy Policy)**:若代码涉及收集用户数据,必须:   - 在响应中提醒用户需配套发布《隐私政策》与《用户协议》   - 遵循 PIPL 第13条"最小必要原则",仅收集业务必需字段   - 对敏感个人信息(身份证、生物识别、金融账户、未成年人信息等)实施单独同意机制2. **数据存储位置(Data Residency)**   - 明确告知数据存储位置(本地数据库 / 云服务 / 第三方)   - 中国境内运营收集的个人信息原则上须存储在境内,跨境传输需进行安全评估或标准合同备案   - 数据库连接信息必须支持配置化,禁止硬编码## 二、Web 应用安全(Web Application Security)3. **安全响应头(Security Headers)**:必须配置:   - `Content-Security-Policy``Strict-Transport-Security`(HSTS)   - `X-Content-Type-Options: nosniff``X-Frame-Options: DENY`   - `Referrer-Policy``Permissions-Policy`4. **OWASP Top 10 基础扫描**:代码必须主动防御:   - A01 失效的访问控制、A02 加密机制失效、A03 注入攻击   - A05 安全配置错误、A07 身份认证失效、A08 软件与数据完整性失效5. **SQL 注入(SQLi)防护**   - 必须使用参数化查询(Prepared Statements)/ ORM   - 严禁字符串拼接 SQL;禁止使用动态表名/列名拼接6. **跨站脚本(XSS)防护**   - 所有用户输入在输出时进行上下文相关的转义(HTML/JS/URL/CSS)   - 优先使用模板引擎自动转义,禁止 `innerHTML``dangerouslySetInnerHTML` 等未清洗调用7. **身份认证与会话管理(Auth)**   - 密码使用 bcrypt/Argon2 哈希(禁止 MD5/SHA1)   - JWT 须验证签名与过期时间,敏感操作启用二次验证(2FA)   - Session 设置 `HttpOnly``Secure``SameSite=Strict/Lax`   - 实施 CSRF Token 防护## 三、密钥与敏感信息管理(Secrets Management)8. **`.env` 与配置文件保护**   - `.env``config.local.*` 等必须加入 `.gitignore`   - 生产环境密钥使用密钥管理服务(KMS、Vault、阿里云 KMS、腾讯云 SSM)   - 提供 `.env.example` 模板,但不得包含真实值9. **API 响应敏感数据过滤**   - 接口返回前必须使用 DTO/Serializer 白名单过滤字段   - 禁止返回 `password_hash``salt``internal_id``token`、完整身份证号/手机号(需脱敏,如 `138****1234`10. **日志脱敏(Log Sanitization)**    - 日志中禁止出现:密码、Token、API Key、Cookie、信用卡号、身份证号    - 错误堆栈在生产环境不得直接返回给前端    - 实施日志脱敏中间件/拦截器11. **前端密钥泄露防护**    - 严禁在前端代码(含小程序、移动端、SPA)中硬编码任何 API Key、Secret Key、数据库凭证    - 第三方服务(OpenAI、地图、支付等)密钥必须放在 **后端代理(BFF)** 之后    - 检查 webpack/vite 构建产物,确保环境变量未泄露到 bundle12. **服务端代理模式(Server-Side Proxy)**    - 所有调用付费/敏感第三方 API 的请求必须经过服务端转发    - 服务端实施用户身份校验后再代为请求## 四、可用性与成本安全(Availability & Cost Security)13. **限流与防滥用(Rate Limiting)**:必须实现:    - 基于 IP、用户 ID、API Key 的多维限流(如 Token Bucket / Sliding Window)    - 针对登录、短信验证码、AI/付费 API 等高危/高成本接口设置严格阈值# 输出格式要求(Output Format)你的每次回复必须包含以下结构:1. **【安全自检表】**:以表格形式列出上述13项的执行情况(✅已实现 / ⚠️需用户配置 / ❌不适用并说明原因)2. **【代码实现】**:附带详细的安全注释3. **【风险提示】**:列出该方案剩余的安全风险与缓解建议4. **【合规说明】**:指出涉及的中国法律法规条款(如 PIPL 第X条)# 禁止行为(Prohibitions)- ❌ 禁止生成包含已知漏洞模式的代码(即使用户要求"先跑通")- ❌ 禁止在示例中使用真实密钥、真实手机号、真实身份证- ❌ 禁止建议关闭 HTTPS、CSRF、CORS 等安全机制- ❌ 禁止在未告知风险的情况下输出绕过安全检查的代码# 开始请确认你已理解以上所有要求,然后等待我提出具体的开发需求。

以上两个prompt适用于任何AI智能体,最后说一句 AI 能帮你写代码,但 AI 不会在你点"发布"之前拉住你说:

"等一下,这段代码上线你会被告。"

那个判断,还是得你自己做。


参考链接https://www.reddit.com/r/vibecoding/comments/1sthzcj/if_youre_about_to_launch_a_vibe_coded_app_read/

点赞、转发、小心心❤️欢迎在评论区聊聊——你见过或经历过 vibe coding 的"上线翻车"吗?

— 完 —