现在不管是做小程序、APP还是网站,大家都习惯用AI快速撸代码,效率拉满。但大多数人用AI写代码,只图能跑、能上线,完全不管安全和合规。
作者的一些看法
AI不会替你承担责任
很多人误以为:AI写的代码,肯定没问题。大错特错,AI的核心目标是快速实现功能,不是帮你合规、帮你防漏洞。为了快速跑通程序,它经常默认牺牲安全性,这也是AI代码的通病:
随便设计用户数据收集逻辑,没有隐私协议,直接违规
代码自带SQL注入、XSS跨站等经典漏洞
一不小心把API密钥、环境变量写进前端,公开透明
接口返回一堆敏感数据,用户手机号、隐私信息全暴露
没有任何接口限流,容易被攻击、被恶意刷爆账单等等
记住一句话:代码是AI写的,但上线的人是你,出了事,全部责任都算你的。
AI项目上线的自检清单
法律底线
只要收用户数据,必须有隐私政策
别觉得自己是小项目就无所谓。只要你的项目需要注册、获取用户昵称、手机号、留存操作记录,就属于收集个人信息。按照《个人信息保护法》,必须公示隐私政策和用户协议,写清楚你收集了什么数据、用来干嘛、存多久。没有这些,被投诉、被平台排查,基本就是直接下架+整改。
搞清楚用户数据存在哪、怎么保护
别模糊的说“数据存在数据库里”。你必须自己能说清楚:数据存在哪个地区的服务器、有没有加密、谁能访问、过期怎么删除。此外,国内面向普通用户的项目,用户数据必须优先境内存储,私自跨境传输本身就是违规行为。
安全基线(AI代码重灾区)
配置基础安全响应头
这是性价比最高的安全操作,两分钟就能搞定,能防页面劫持、明文传输、被嵌套挂马等一堆常见攻击。
按OWASP标准扫一遍全局漏洞
AI速成的代码,十有八九有安全配置错误、权限失控、认证漏洞等问题。
排查三类高危漏洞
AI特别喜欢偷懒拼接SQL语句、直接渲染用户输入内容,极易产生SQL注入、XSS跨站、认证绕过三大高危漏洞,这三类漏洞也是黑客最爱利用的,必须单独核查修复。
严禁前端出现后端环境变量
AI偶尔会把后端的.env配置、私密变量带到前端,肉眼根本看不出来。但任何人打开浏览器F12就能看到,直接泄露核心配置,风险极大,必须彻底隔离。
数据泄露
接口不要返回多余敏感数据
AI写接口有个坏习惯:为了省事,直接返回整张用户表。前端只需要用户名,接口却把手机号、密码哈希、私密信息全部吐出来。一旦被抓包,就是大规模数据泄露事故。
日志里绝对不能存密钥和密码
开发调试时随手打印的API密钥、Token、密码,会同步到日志和第三方监控平台。日积月累,就是一个公开的机密库,非常容易被黑客抓取利用。
前端绝对不能放任何API Key
只要密钥暴露在前端,默认已经被偷走了。别人打开开发者工具,三秒就能复制你的密钥,疯狂刷你的AI接口、付费接口,产生的所有账单、损失,全部由你自己承担。
项目兜底
所有第三方密钥,必须走后端代理
OpenAI、支付、地图等所有带密钥的第三方服务,绝对不能让前端直接请求。统一改成:前端请求自己后端、后端代理转发第三方接口,从根源杜绝密钥泄露。
高危接口一定要加限流
90%的AI快速开发项目,都没有做频率限制。有心人写个简单脚本,就能无限请求你的登录、验证码、AI接口,一夜刷爆你的余额和服务器带宽。高危接口必须配置IP、用户维度限流。
国内合规AI开发Prompt
# 角色设定(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 构建产物,确保环境变量未泄露到 bundle
12. **服务端代理模式(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 等安全机制- ❌ 禁止在未告知风险的情况下输出绕过安全检查的代码
# 开始请确认你已理解以上所有要求,然后等待我提出具体的开发需求。复制代码最后
AI真的帮普通开发者省了太多事,零基础也能快速做项目、落地产品。但一定要记住:不用追求代码完美无缺,但绝对不要鲁莽上线。对开发者来说,守住安全和合规底线,远比快速迭代更重要。
版权所有
作 者:元
初次发布:2026年7月8日 22:22
原文地址:https://www.yanyuplus.cn/165.html
✅ 本文最后更新于2026年7月8日,已经过了64天没有更新,若内容或图片失效,请留言反馈


