---
title: "5.3.2 绝对禁区：永远不要告诉 AI"
order: 4
---


![05-advanced_5.3-security_5.3.2-never-tell-ai.png](/images/Basic/05-advanced_5.3-security_5.3.2-never-tell-ai.png)
# 5.3.2 绝对禁区：永远不要告诉 AI 的东西

经过本节学习，你将掌握：
- 哪些信息绝对不能发送给 AI
- 为什么这些信息会带来风险
- 如果已经发送了该怎么补救
- 如何安全地让 AI 帮你处理敏感场景

## 绝对禁令清单

**永远不要**在与 AI 对话时发送以下内容：

| 类型 | 示例 | 为什么危险 |
|------|------|-----------|
| API 密钥 | `sk-abc123...`、`AKIA...` | 可被用于消费你的账户，或访问你的云服务 |
| 数据库连接字符串 | `postgres://user:pass@host/db` | 攻击者可直接访问你的数据库 |
| 密码 | 任何真实密码 | 身份被盗用，账户被入侵 |
| 私钥/证书 | `-----BEGIN RSA PRIVATE KEY-----` | 可用于伪装成你的身份，入侵你的系统 |
| 个人身份信息 | 身份证号、银行卡号、社保号 | 隐私泄露，可能被用于诈骗 |
| 公司/学校机密 | 内部文档、客户数据、商业秘密 | 数据泄露，可能违反保密协议 |
| Token/Session | JWT token、登录凭证 | 可用于冒充你的登录状态 |

## 为什么 AI 对话不安全

你可能会想：我用的是正规的 AI 服务，应该没问题吧？

事实上，风险来自多个方面：

1. **训练数据**：部分 AI 服务可能将对话用于模型训练，你的信息可能被"记住"
2. **日志记录**：对话内容可能被记录在服务器上
3. **数据泄露**：即使是大公司也可能发生数据泄露事件
4. **员工访问**：某些情况下，服务提供商的员工可能有权限查看对话

::: danger 核心原则
**假设你发送给 AI 的任何内容都可能被公开。**

如果你不愿意把某条信息贴在公告栏上，就不要发送给 AI。
:::

## 常见危险场景

### 场景一：让 AI 检查密钥

```
❌ 错误做法：
"帮我检查这个 OpenAI API Key 格式对不对：sk-proj-abc123xyz..."

✅ 正确做法：
"OpenAI API Key 的格式是什么样的？"
```

### 场景二：让 AI 帮忙调试连接问题

```
❌ 错误做法：
"我的数据库连接失败了，连接字符串是 postgres://admin:MyP@ssw0rd@db.example.com/mydb"

✅ 正确做法：
"我的 PostgreSQL 连接失败了，错误信息是 'connection refused'，可能是什么原因？"
```

### 场景三：让 AI 帮忙写配置文件

```
❌ 错误做法：
"帮我写一个 .env 文件，我的 Stripe 密钥是 sk_live_xxx..."

✅ 正确做法：
"帮我写一个 .env 文件的模板，包含 Stripe 配置项，用占位符表示"
```

## 如果已经发送了怎么办

如果你不小心发送了敏感信息，立即采取以下步骤：

| 步骤 | 行动 | 说明 |
|------|------|------|
| 1 | **立即更换** | 更换泄露的密钥/密码，不要等到"有空再说" |
| 2 | **检查使用记录** | 查看相关服务的使用日志，是否有异常活动 |
| 3 | **设置告警** | 如果服务支持，开启异常使用告警 |
| 4 | **清除对话** | 如果 AI 服务支持，删除包含敏感信息的对话 |
| 5 | **记录教训** | 下次更加小心 |

## 安全替代方案

那么，如何让 AI 帮忙处理涉及敏感信息的场景呢？

**使用占位符**：

```javascript
// 让 AI 帮你写这样的代码：
const apiKey = process.env.API_KEY;  // 从环境变量读取
const dbUrl = process.env.DATABASE_URL;  // 不要硬编码

// 而不是：
const apiKey = "sk-真实密钥";  // 绝对不要这样
```

**只描述问题，不暴露数据**：

```
✅ "我的 API 调用返回 401 错误，可能是什么原因？"
✅ "如何验证一个 JWT token 是否过期？"
✅ "数据库连接超时通常怎么排查？"
```

::: tip 记住
AI 不需要看到你的真实密钥就能帮你解决问题。

就像你问医生"头疼怎么办"，不需要把你的病历号告诉 AI。
:::

→ [5.3.3 代码中的安全隐患](./5.3.3-code-risks.md)
