夜雨聆风学习资料网

ARTICLE · 1324691

Postman 会自动装 AI 插件并尝试上传你的 API 数据

Postman 会自动装 AI 插件并尝试上传你的 API 数据

Postman 会在你不知情的情况下装上 AI 相关插件,并按「共享全部 API 数据」的默认方向尝试上传。这不是某个版本的 bug,是默认配置层面的行为,HackerNews 上有人把过程扒了出来。你那些带着 token、内网 IP、真实业务字段的集合,就躺在这个默认行为覆盖的范围里。有人贴出了抓包截图,请求体里连集合名和请求数量都带上了。

我用 Postman 管接口有五六年了,从最早的 Chrome 插件版本用到现在。看到这条第一反应是去翻本机的安装目录,第二反应是把几个主力集合导出。下面按「查什么、关什么、迁到哪、团队怎么定规矩」四件事讲,能直接照做的步骤都写在里面。

先查装了什么

Postman 桌面版不是单一体,它是 Electron 壳套一堆模块。AI 相关的东西通常以插件或内置 Agent 面板的形式出现,不需要你手动装。装完主程序,这些模块跟着就进来了,版本号一变,模块名也跟着变。

打开 Postman,先看两个地方:

  • 右上角或左侧边栏有没有 Postbot / AI 助手的入口图标。有,说明 AI 模块已经在你机器上了。点进去看一眼,它会读你当前打开的集合。
  • 点 Settings → General,翻到和 AI、Telemetry、Data 相关的分组。不同版本菜单名会变,找关键词:AI、Postbot、Telemetry、Analytics、Usage data。我这一版里,AI 开关在 General 下面第二屏,Telemetry 在它下面三行。

再看安装目录。Windows 默认在 %LOCALAPPDATA%\Postman\app-<版本号>\resources,Mac 在 ~/Library/Application Support/Postman。里面如果有 postbot、ai、assistant 之类命名的目录或 asar 包,就是它。我本机翻到 resources 下有个 postbot 目录,里面是打包过的 js,体积 12MB 上下。

命令行能更快确认进程行为:

# Windows,看 Postman 起了哪些子进程 tasklist | findstr /i postman  # 看它连了哪些远端 netstat -ano | findstr <上一步拿到的PID>

如果看到连向 Postman 自家域名之外的地址,尤其是带 ai、ml、inference 字样的,记下来。这个我没在每一版上都跑过,不同版本命名不一样,只当线索不当结论。跑的时候留意 ESTABLISHED 状态的连接,TIME_WAIT 的多半是刚断开的。

三个开关必须关

设置里真正要紧的是这三个方向,名字各版本有出入,按语义找:

  1. AI / Postbot 功能开关
    ——直接关掉。关掉后 AI 面板入口会消失或变灰。我这边关完重启,侧边栏那个图标就没了。
  2. 使用数据与遥测上报
    (Usage data / Telemetry / Analytics)——关。这类开关默认常开,关掉不影响正常发请求。关之前它默认是每 24 小时上报一次,关完这个周期就停了。
  3. 同步与云端存储
    (Sync / Cloud)——如果你只用本地集合,把自动同步关掉,改成手动。集合一旦同步到云端,数据外发的边界就不在你手里了。手动同步的意思是每次点一下才传,不点就留在本地。

关完重启 Postman,再跑一次上面的 netstat 对比。这一步比看设置界面可靠,界面写「关闭」不代表进程不连。我第一次对比时,关完 AI 开关后仍有一条连向 *.postman.com 的长连接,是同步模块的,把第三个开关也关了才干净。

另外,免费账号和团队账号的行为可能不同。团队版有管理员策略,普通成员在客户端关的开关,可能被组织策略覆盖。如果你是团队里的普通成员,光在自己机器上关不够,得找管理员确认组织级设置。管理员在后台能看到一个「数据共享」的总开关,那个优先级高于客户端。

迁到 Bruno 或 Insomnia

插件和遥测是表面问题,根子是「集合存在别人服务器上」。要彻底断,把集合迁到本地优先的工具。Bruno 的集合就是磁盘上的纯文本文件夹,天然可版本控制;Insomnia 也能本地存,但它的云同步要留意别默认打开。Bruno 装完是 80MB 左右,Insomnia 大一些,200MB 出头。

迁移三步,通用:

第一步,从 Postman 导出。 选中集合 → 右键 Export → 格式选 Collection v2.1(这个格式兼容性最好)。环境变量单独导:Environments → Export。导出的文件是 JSON,先别急着导入,用编辑器打开扫一遍,把 Bearer xxx、api_key、内网 10.x / 192.168.x 地址挑出来,这些不该跟着文件走。一个中等规模的集合,扫一遍大概十分钟。

第二步,导入 Bruno。 打开 Bruno → Collection → Import Collection → 选 Postman v2.1 的 JSON → 选落地目录。Bruno 会把它转成 .bru 文本文件,一个请求一个文件。环境变量在 Environments 里单独导入,敏感值用它的 secret 变量类型存,别写明文。secret 类型在界面上显示为掩码,导出时也不会带出值。

第三步,导入 Insomnia。Application → Import → From File,同样吃 v2.1 JSON。导入后在 Preferences 里把云同步关掉,确认集合是本地库。Insomnia 的云同步开关在 Preferences 的 Account 标签下,默认是开的。

导入后必做一件事:逐条跑一遍关键请求。Postman 的脚本(Pre-request Script、Tests)在迁移中不一定完整翻译,带签名的接口最容易断。断了的请求手动补,别指望自动转换全对。我迁的 40 多个请求里,有 3 个带 HMAC 签名的断了,原因是脚本里的时间戳函数没转过来,手动补了半小时。

这个方案不适合谁:如果你的团队重度依赖 Postman 的 Mock Server、监控(Monitor)、CI 里的 newman 跑测试,Bruno 和 Insomnia 短期内接不住这些。迁之前先盘清楚有多少流程挂在 Postman 的服务端功能上,挂得多的,先关开关、缓迁移。盘的办法是把团队里所有 newman 的调用点 grep 一遍,数一下有多少条流水线。

为什么这事值得较真

API 集合不是一堆 URL。里面通常有:测试环境的真实 token、内网服务的地址和端口、请求体里的真实业务字段、有时候还有生产库的脱敏样本。一个集合里几十个请求,每个请求带三五个参数,拼起来就是一张内网地图。

单个集合泄露的危害不在于「被人看到接口长什么样」,在于这些东西拼起来能直接打你的内网。地址 + token + 参数结构,就是一份现成的攻击手册。默认开启的上报,把这份手册的传输路径交到了你没法审计的地方。你不知道它传了什么、传给了谁、存了多久。

这也是为什么「关开关」只是止血,「迁到本地」才是断根。数据不出机器,才谈得上边界。本地工具也不是绝对安全,但至少传输路径你能看见,文件在哪个目录你能找到。

对独立开发者和小团队,我的建议很直接:别在这上面省事。装个 Bruno,把常用集合迁过去,半天的事。省下来的这半天,不够你处理一次 token 泄露。真泄露了,换 token、查日志、通知相关方,一天打不住。

团队怎么定边界

一个人关开关是个人卫生,一个团队定规矩才是防线。三件事落到文档里:

  • 接口数据分级
    。哪些集合允许同步到云端(公开 API、示例数据),哪些绝对不许(带真实凭证、内网地址、生产样本)。分完级,在工具里用不同的集合或工作区分开存。分级表放在团队 wiki 首页,新成员入职第一周就得看。
  • 凭证不进集合
    。token、密钥一律走环境变量或团队密钥管理,集合里只留占位符。这条能挡住大部分「集合被上传」的实际损失。占位符的命名统一成 {{TOKEN}} 这种格式,方便脚本扫。
  • 新工具先过一遍出网行为
    。任何装到开发机上的 API 工具,装完先 netstat 看一眼连了哪,再决定要不要长期用。这个动作花两分钟,比事后排查便宜太多。团队里可以指定一个人做这个检查,装完工具统一报一次。

至于 Postman 官方后续会不会改默认行为、会不会给出更细的开关,我不做预测。眼下能确定的是:默认配置不站在你这边,得自己动手。

你现在的 API 集合是纯本地存,还是走了云端同步?如果还在 Postman 上,先去 Settings 里把那三个开关找一遍,回来告诉我你找到几个。

本文由 AI 协助整理成稿。文中标注为实测的部分来自作者本机环境,其余为公开资料与原理推演。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料