一、一个让我失眠的发现
三个月前,我接手了一个任务:给公司50多人的技术团队统一配置AI开发工具。
一开始我觉得这活儿很简单——装上Cursor,配好Copilot,教会大家怎么用,完事。
直到我认真读了一遍隐私政策。
Cursor的隐私协议里写着:“我们可能会收集代码片段用于改进模型”。GitHub Copilot的企业版文档里标注:“建议关闭‘代码建议收集’功能以符合合规要求”。ChatGPT Team的控制台里,有一个默认开启的开关叫 “改进所有人的模型”。
那一刻我意识到:我们不是在用工具,我们是在把公司的核心代码和业务逻辑,一车一车地往外面送。
于是我花了两周时间,把所有主流AI开发工具的安全设置翻了个底朝天。这篇笔记,就是我的配置清单。
二、最危险的三个默认设置
先说结论。无论你用哪款AI工具,下面三个默认开关必须第一时间检查:
| 危险项 | 默认状态 | 泄露风险 | 涉及工具 |
|---|---|---|---|
| “改进模型”/“数据收集” | ✅ 开启 | 你的代码、对话可能被用于训练 | Cursor、Copilot、ChatGPT |
| “人工审核访问” | ✅ 开启 | 真实对话记录可能被人工查看 | ChatGPT、Claude |
| “云端缓存索引” | ✅ 开启 | 项目文件被上传并持久化存储 | Cursor、Windsurf |
这三个开关,几乎所有人都会忽略,但它们恰恰是数据泄露的三大通道。
下面我按工具逐一拆解。
三、Cursor:最丝滑的IDE,最隐秘的“上传器”
Cursor是目前最受欢迎的AI编程工具,但它的数据流动路径也是最复杂的。
3.1 必须关闭的设置
进入 Settings > General > Privacy:
-
“Share anonymous usage data” → 关闭。虽然写着匿名,但代码片段的哈希值仍可能关联到你的项目。
-
“Improve the model with your code” → 务必关闭。这是最核心的开关。开启状态下,你在Cursor中的所有代码交互都可能被用于训练后续模型。
进入 Settings > Models > Advanced:
-
“Enable cloud indexing for faster context” → 建议关闭。这个功能会把你的整个项目索引上传到Cursor云端,目的是让AI更快理解代码上下文。代价是你的代码在别人的服务器上存了一份。如果你在敏感项目上工作,这个开关绝不能开。
3.2 本地模式的真相
Cursor有一个“Local Mode”的说法,容易让人误以为所有数据都在本地。但实际测试下来:
-
代码补全请求:必定经过Cursor服务器(除非完全禁用AI功能)
-
对话历史:云端存储30天(付费用户可申请延长,但不会删除)
-
本地索引:默认上传,除非手动关闭上述cloud indexing
结论:Cursor没有真正的“纯本地”模式。如果你处理的是金融、医疗、军工等高敏数据,建议单独准备一台断网设备写核心逻辑,仅用Cursor处理外围代码。
3.3 企业团队的妥协方案
我给团队配置的是“混合策略”:
-
敏感模块(支付、用户数据、密钥管理):严禁使用任何AI编程工具,手写
-
普通业务代码:允许用Cursor,但必须关闭上述三个开关
-
每周抽查一次Cursor的配置状态(配置是本地存储的,可以写脚本检测)
四、GitHub Copilot:微软的“老实”与“不老实”
Copilot背靠微软,合规文档写得最规范,但坑藏得也最深。
4.1 企业版 vs 个人版,天壤之别
| 配置项 | 个人版默认 | 企业版默认 | 建议 |
|---|---|---|---|
| 代码收集用于训练 | ✅ 开启 | ❌ 关闭 | 企业版无需动,个人版必须关 |
| 建议缓存 | 24小时 | 不缓存 | 个人版可接受 |
| 数据留存 | 不确定 | 可配置自动删除 | 设为30天 |
个人版用户:进入GitHub Settings > Copilot > 取消勾选“Allow GitHub to use my code snippets for product improvements”。这个开关藏得很深,不在Copilot插件里,在网页端GitHub设置中。
企业版用户:虽然是默认关闭数据收集,但还有一个隐藏风险——Copilot会将你的代码发送到云端做上下文匹配。也就是说,即使不用于训练,代码仍然会离开你的网络。唯一的解决方案是GitHub Copilot Enterprise + Azure私有部署,但这套方案起步价是每年数万美元。
4.2 实测:Copilot到底上传了什么?
我用Wireshark抓包看了一下Copilot插件的行为:
-
每次按Tab接受建议:发送当前打开文件的前后200行(这是公开文档里的数字)
-
每30秒:发送光标附近的代码上下文
-
每5分钟:发送整个工作区的文件树结构
好消息是:这些数据不会被用于训练(如果你关闭了那个开关)。坏消息是:它们依然经过了微软的服务器。
底线:如果你的公司有“数据不得出境”或“不得经过第三方服务器”的合规要求,那么Copilot也不合规——除非你用私有化部署版本。
五、ChatGPT Team:对话里的“第三只眼”
很多人以为ChatGPT的对话是私密的。大错特错。
5.1 两个必须关闭的开关
进入 Team settings > Data controls:
-
“Improve the model for everyone” → 关闭。开启状态下,你的团队对话会被用于训练全局模型。
-
“Allow human review of conversations” → 务必关闭。这是最容易被忽略的坑。开启状态下,OpenAI的安全审核团队可以调取你的真实对话记录——包括你贴进去的代码、数据库连接串、API密钥。
是的,你没看错。如果你在ChatGPT里贴过生产环境的密钥,而人工审核开关是开启的,那就等于你亲自把密钥交给了陌生人。
5.2 对话保留策略
ChatGPT Team的默认对话保留是无限期。即使你删了对话,后台仍可能保留30-90天用于“安全审核”。
配置建议:
-
设置自动删除策略:
Settings > Data controls > Retention→ 设为30天 -
开启“禁止将对话用于模型改进”(上面已说)
-
永远不要在ChatGPT里粘贴敏感信息——密钥、证书、数据库连接串、客户PII数据,一概不行
5.3 一个替代方案
如果团队必须用大模型处理敏感内容,可以考虑:
-
Azure OpenAI 私有实例:数据不离开你的Azure订阅,但成本较高
-
本地部署开源模型:Llama 3、DeepSeek V3等,完全离线,但硬件成本不低
-
API中转+数据脱敏:在发送前自动替换敏感字段(身份证号、手机号、密钥),这是性价比最高的方案
六、三层加固方案:从工具到行为
单靠工具设置是不够的。我搭建了一套“工具级→系统级→行为级”的防护体系:
第一层:工具配置(立即执行)
| 检查项 | 操作 |
|---|---|
| Cursor数据收集 | 关闭“Improve model with your code” |
| Cursor云端索引 | 关闭“Cloud indexing” |
| Copilot代码收集 | GitHub网页设置中关闭 |
| ChatGPT模型改进 | Team settings中关闭 |
| ChatGPT人工审核 | 必须关闭 |
| 所有工具的自动更新 | 开启,确保安全补丁及时 |
第二层:系统隔离(强力推荐)
在开发机上创建独立的“AI开发环境”:
# 方案A:Docker容器隔离 docker run -it --rm -v $(pwd):/workspace cursor-ide # 方案B:虚拟机快照 # 使用VMware/VirtualBox创建专用开发虚拟机,与宿主机网络隔离
更简单的方案:准备两台电脑。一台联网跑AI工具,写常规代码;另一台断网/物理隔离,写核心敏感模块。听起来麻烦,但对高敏项目来说是唯一可靠的方案。
第三层:行为规范(最难执行)
这是我给团队定的“铁律”,每一条都是踩过坑之后才加上去的:
-
代码脱敏三原则:发给AI之前,手动替换——真实域名→test.com、真实密钥→xxxx、真实用户数据→匿名数据
-
禁止贴日志:生产日志里往往藏着用户IP、手机号、Token,绝对不能贴
-
每日清理:工作结束前,清除所有AI工具的对话历史(Cursor:Cmd+Shift+P → Clear History)
-
定期轮换:如果怀疑密钥/Token曾在AI对话中出现过,立即轮换
-
审计日志:企业用户开启所有工具的审计日志,定期检查异常对话
七、如果我今天重新开始配置
说了这么多,给一个简洁版的执行清单:
第1步(5分钟):检查Cursor的三个开关,关掉数据收集和云端索引
第2步(3分钟):登录GitHub网页设置,关掉Copilot的代码收集
第3步(5分钟):进入ChatGPT Team settings,关掉模型改进和人工审核,设置30天自动删除
第4步(1小时):写一个简单的数据脱敏脚本,集成到团队的工作流中(用正则替换敏感字段后再发给AI)
第5步(持续):每周五花10分钟,清理一次所有AI工具的对话历史
这套流程执行下来,不敢说100%安全,但至少堵住了90%的低级泄露渠道。
写在最后
AI编程工具不是洪水猛兽,但也不是天真小白兔。
它们确实能提效,但它们也确确实实在消费你的数据。默认设置永远倾向于“让产品变得更好”,而不是“让用户变得更安全”。作为使用者,你得自己把安全的那道闸门拉下来。
我见过太多团队——包括我们自己早期——因为贪图方便,在生产环境密钥、数据库连接串、客户数据一股脑地往AI对话框里扔。直到有一次,一个实习生把包含AWS密钥的代码片段贴进了ChatGPT,而人工审核开关是开着的。
那之后我们花了三天时间轮换了所有密钥。
别等到出事再后悔。今天花30分钟把安全配置做完,往后每一行代码才写得安心。
本文作者朱编辑,团队技术负责人,专注AI工程化与开发安全。欢迎交流你的AI安全实战经验。