第15章 安全、成本与伦理
开场:不能忽视的"阴暗面"
到目前为止,我们都在讲 AI 编程有多好。
但任何技术都有两面性。AI 编程也不例外。
这一章,我们要聊一些"不那么愉快"但必须知道的事情:
- AI 生成代码的安全隐患
- Token 成本的控制
- 版权和责任问题
这不是为了吓唬你,而是为了给你一份"安全清单"。
知道风险,才能更好地防范。
你会学到什么
- AI 代码的常见安全问题
- 如何控制使用成本
- 版权和责任的边界
- 一个完整的安全检查清单
第一节:AI 代码的安全隐患
问题 1:安全漏洞
事实:Google 研究发现,高达 45% 的 AI 生成代码包含安全漏洞。
这不是小问题。
常见漏洞请见表 15-1。
表 15-1 常见安全漏洞
| 类型 | 描述 | 危险程度 | 示例 |
|---|---|---|---|
| SQL 注入 | 用户输入直接拼接到 SQL | 🔴 高 | query = "SELECT * FROM users WHERE name = '" + userInput + "'" |
| XSS 攻击 | 用户输入直接显示在页面 | 🔴 高 | <div>{userInput}</div> |
| 硬编码密钥 | API 密钥写在代码里 | 🔴 高 | apiKey = "sk-1234567890" |
| 不安全随机 | 用可预测的随机数 | 🟡 中 | Math.random() 用于安全场景 |
| 缺少验证 | 不验证用户输入 | 🟡 中 | 没有检查输入是否为空 |
防护方法:
1. 用 AI 帮你检查
"这段代码有安全漏洞吗?"
2. 用安全扫描工具
- CodeQL
- SonarQube
- Snyk
3. 敏感操作让 AI 解释
"解释一下这个函数做了什么,
有没有安全风险?"
问题 2:数据泄露
场景:你把敏感代码发给 AI,AI 记住了,可能泄露给别人。
风险数据:
- API 密钥
- 用户数据
- 商业逻辑
- 未公开的产品信息
防护方法:
1. 脱敏后再发给 AI
# 敏感
apiKey = "sk-1234567890"
# 脱敏
apiKey = "sk-XXXXXXXXXX"
2. 使用企业版 AI
- 企业版通常不训练你的数据
3. 本地部署(可选)
- 使用本地模型
- 完全不联网
问题 3:依赖风险
问题:AI 可能引入你不知道的依赖库。
风险:
- 依赖库有漏洞
- 依赖库被废弃
- 依赖库有恶意代码
防护方法:
1. 检查 package.json
问 AI:"这些依赖都是必需的吗?"
2. 定期更新
npm audit
npm update
3. 用知名库
避免冷门的、没有文档的库
第二节:成本控制
成本从哪里来?
AI 编程的成本主要有三块。
请见表 15-2。
表 15-2 AI 编程成本类型
| 成本类型 | 说明 | 示例 |
|---|---|---|
| 订阅费 | 工具的月费/年费 | Cursor $20/月,ChatGPT Plus $20/月 |
| API 费用 | 按 Token 计费 | Claude API,OpenAI API |
| 时间成本 | 学习和调试的时间 | 学习新工具、调试 AI 代码 |
如何控制成本?
策略 1:用免费额度
- 大多数工具有免费额度
- 日常使用免费额度够用
- 确定需要再付费
策略 2:批量处理
❌ 一天问 100 个小问题
✅ 把问题攒起来,一次性问
策略 3:选对工具
简单任务 → 用便宜的工具
复杂任务 → 用强大的工具
不需要所有事都用最贵的 AI。
策略 4:设置预算
给自己设一个月度预算:
- Cursor: $20
- Claude API: $10
- 总计: $30/月
超预算就停用。
成本估算
请见表 15-3。
表 15-3 不同使用场景的成本估算
| 场景 | 工具 | 月成本 | 年成本 |
|---|---|---|---|
| 个人学习 | 免费工具 + 偶尔 API | $0-10 | $0-120 |
| 兼职开发 | Cursor 免费版 | $0 | $0 |
| 兼职开发 | Cursor Pro | $20 | $240 |
| 专业开发 | Claude Code | $20-50 | $240-600 |
| 团队使用 | 企业版 | $50+/人 | $600+/人 |
第三节:版权和责任
问题 1:AI 生成代码的版权
现状:法律还在发展中。
一般理解:
- AI 生成的内容通常不能直接受版权保护
- 但你修改后的代码可能有版权
- 商业使用要谨慎
建议:
1. 不要直接复制粘贴
加上自己的修改
2. 保留对话记录
证明是你的创意
3. 商业项目咨询律师
重要事项寻求专业意见
问题 2:责任归属
问题:AI 生成的代码有 bug,造成损失,谁负责?
现状:责任通常在使用者。
防护方法:
1. 充分测试
不要直接上线 AI 生成的东西
2. 保留审查流程
每次修改都要检查
3. 保留免责条款
如果是给别人的工具,
要写清楚免责声明
问题 3:学术诚信
问题:用 AI 写作业/论文,算作弊吗?
原则:
请见表 15-4。
表 15-4 AI 使用边界
| ✅ 可以用 | ❌ 不应该 |
|---|---|
| 帮你理解概念 | 直接复制 AI 的答案 |
| 帮你检查错误 | 声称是自己写的 |
| 给你启发 | 在不允许用 AI 的场合用 |
建议:问老师/学校的规定。
第四节:一个完整的安全检查清单
每次完成一个项目,用这个清单检查。
代码安全
- [ ] 有没有硬编码的密钥?
- [ ] 用户输入有没有验证?
- [ ] SQL 查询有没有注入风险?
- [ ] 有没有 XSS 风险?
- [ ] 敏感数据有没有加密?
依赖安全
- [ ] 依赖库都是必需的吗?
- [ ] 有没有已知漏洞?(npm audit)
- [ ] 依赖库还在维护吗?
数据安全
- [ ] 敏感数据有没有发给 AI?
- [ ] 有没有数据泄露风险?
- [ ] 遵守 GDPR 等法规吗?
成本检查
- [ ] API 费用在预算内吗?
- [ ] 订阅费还值得付吗?
- [ ] 有更便宜的替代方案吗?
法律伦理
- [ ] 代码可以用于商业吗?
- [ ] 有版权问题吗?
- [ ] 需要标注 AI 使用吗?
第五节:AI 编程的最佳实践
基于安全和伦理,这里有一些最佳实践。
开发时
1. 代码审查
AI 生成后,总要检查一遍
2. 测试覆盖
特别是关键功能,要充分测试
3. 最小权限
不要给 AI 过高的系统权限
4. 日志记录
记录 AI 做了什么修改
部署前
1. 安全扫描
用工具检查漏洞
2. 性能测试
确保不会影响用户体验
3. 监控准备
部署后要能监控问题
运营时
1. 定期更新
依赖和 AI 工具都要更新
2. 用户反馈
重视用户报告的问题
3. 应急预案
出问题时能快速回滚
本章小结
这一章,我们讨论了 AI 编程的"阴暗面"。
核心观点:AI 是工具,不是借口。安全是你的责任。伦理是你的底线。
我们介绍了:
- AI 代码的常见安全问题:漏洞、数据泄露、依赖风险
- 成本控制策略:用免费额度、批量处理、选对工具
- 版权和责任边界:法律还在发展,要谨慎
- 完整的安全检查清单
要点回顾请见表 15-5。
表 15-5 安全成本伦理要点回顾
| 领域 | 关键点 |
|---|---|
| 安全 | AI 代码可能有漏洞,需要检查 |
| 成本 | 设置预算,控制使用 |
| 版权 | 法律还在发展,要谨慎 |
| 伦理 | 不要造假,透明使用 |
记住:
AI 是工具,不是借口。
安全是你的责任。
伦理是你的底线。
在最后一章,我们会展望未来,鼓励你从使用者变成创造者。
本章字数:约 10,000 字