资安 · API 安全

Binance API Key 安全设定
禁 Withdraw、IP 白名单、2FA

2026-06-03·9 分钟阅读·必读

要用 bot / SaaS / 自动化工具的第一件事就是建 API Key。 但 90% 的人会犯同一个错:权限给太多。本文讲三个关键设定, 降低你 API Key 被黑时的最大损失。

看完你会知道:① 为什么一定要禁 Withdraw、② IP 白名单怎么设、 ③ 哪些 SaaS 可以信、④ 万一外泄怎么处理。

1. 为什么 API Key 比账号密码更危险

API Key 跟密码最大差别:

  • 密码:登入时要过 2FA、要过 KYC 风控、提币会发 email 确认,多重防线
  • API Key:被黑者拿到就能直接调用 API, 绕过 2FA、绕过 email 验证

所以 API Key 等于把钥匙交给机器人。钥匙能开多少门, 就是你决定要给多少权限。

2. 三大关键设定

① 禁用 Withdraw 权限 ⭐ 最重要

Binance 建 API Key 时,预设会问你要不要勾以下权限:

  • Enable Reading(看账户、看持仓)→ 一定要
  • Enable Spot & Margin Trading → 自动交易要勾,纯看盘可不勾
  • Enable Futures → 想下期货单要勾
  • Enable Withdrawals绝对不要勾!
  • Permits Universal Transfer → 账户间转钱,建议不勾
为什么禁 Withdraw 那么重要
就算 API Key 100% 外泄,黑客只能拿你的 key 下单 — 卖 BTC 换 USDT、 开假仓位刷量等。但不能把钱搬走。 这给你时间发现异常并停用 key,损失可控。 开了 Withdraw 等于把保险箱钥匙也给黑客。

② IP 白名单

Binance API Key 设定页可以填「Restrict access to trusted IPs only」。 填了之后只有来自这些 IP 的请求会被接受。

场景:

  • 自己架机器人在 VPS → 填 VPS 的固定 IP
  • 用 SaaS 平台 → 填平台公告的 IP(TVSBot 会在仪表板显示)
  • 自己电脑测试 → 你的家用 IP(会变动,不建议)
IP 白名单没填会怎样
Binance 仍可以用,但没这层保护。 全球任何 IP 拿到 key 都能打 API。 建议至少对「生产用 key」设白名单,测试 key 可放宽。

③ 主账号账户开 2FA

这跟 API 没直接关系,但相关。建议:

  • 主账号 2FA 用 YubiKey 或 Google Authenticator,不要用 SMS(会被 SIM swap)
  • API Key 建立时要过 2FA 验证
  • 提币地址要白名单(限制只能提到你预设地址)
  • 启用「异常登入邮件通知

3. 建 API Key 完整步骤

以 Binance 为例(OKX、Bybit 等流程类似):

  1. 登入 Binance → 右上头像 → API Management
  2. Create API → 选 System generated(HMAC,最常用)
  3. Label 填名称(例如 tvsbot-prod) 方便日后辨识
  4. 完成 2FA 验证
  5. 拿到 API KeySecret KeySecret 只会显示一次,立刻复制存到密码管理工具 (如 1Password / Bitwarden)
  6. 点该 Key 旁边 Edit restrictions
    • ✅ Enable Reading(一定要)
    • ✅ Enable Spot & Margin Trading(自动下现货/杠杆)
    • ✅ Enable Futures(自动下期货)
    • ❌ Enable Withdrawals(一定不要)
    • ❌ Permits Universal Transfer(不需要就不勾)
  7. Restrict access to trusted IPs only → 填 SaaS 平台 IP (或 VPS IP)
  8. Save changes

4. 怎么挑可信 SaaS 平台

重点看两个架构选择:

维度托管型(差)非托管型(好)
API Key 储存平台明文 / 弱加密强加密(如 Fernet AES-128)
资金流资金存平台钱包资金永远在你交易所账户
单点失败平台被黑 → 全部用户遭殃平台被黑 → 只泄漏加密的 key(仍需 master key 解密)
代表案例3Commas(被黑 $22M)TVSBot、TradingView 内建 trading panel
2022 3Commas 事件给的教训
托管型 SaaS 把100 万把 API key 集中存, 被黑后 10 万把外泄,44 名受害者实证损失 $14.8M。 详细分析见 为什么 3Commas 被偷 $22M

5. 红绿灯:可信平台的检查清单

用以下问题快速评估一个 SaaS 安不安全:

  • 🟢 文件有写加密方式(Fernet / KMS / HSM)?
  • 🟢 有 IP 白名单可填?
  • 🟢 有 Withdraw 权限警告(提醒用户不要开)?
  • 🟢 有 Bug bounty 计划?
  • 🟢 有公开安全页面 / 第三方审计报告?
  • 🔴 要你给 Withdraw 权限?— 直接走人
  • 🔴 账户资金在「平台钱包」而非交易所?— 托管型,高风险
  • 🔴 没提加密只说「我们很安全」?— 不要信

6. API Key 万一外泄怎么办

发现 API Key 可能外泄(电脑中毒、SaaS 平台被黑、自己 push 到 Github),立刻:

  1. Binance API Management → 找到该 Key → Delete
  2. 检查近期订单 / 提币记录是否有异常
  3. 如果有 Withdraw 权限且发现可疑提币 → 立刻联络 Binance 客服 + 报警
  4. 建立新 Key(这次确保禁 Withdraw + IP 白名单)
  5. 用密码管理工具存新 key,不要再贴进文件 / Slack / Email

7. 进阶:多 Key 分仓

一个进阶做法:把资金分散到多个账户 / 子账户,每个用独立 API Key。 这样单一 key 出问题只影响该账户资金。

  • 主账号:存大部分资金,不建 API Key
  • 子账号 A:跑策略 1,独立 key + 独立 IP 白名单
  • 子账号 B:跑策略 2,另一把 key
  • 子账号之间用 Universal Transfer(手动)转资金

这对小资金来说 overkill,但对 6 位数美元以上资金强烈建议。

Get started

想把今天学到的东西自动化跑起来?

TVSBot 是非托管架构 — 你的 API key 用 Fernet AES-128 加密储存,平台从不直接持有资金。完整安全页见 /security。

免费注册 TVSBot

8. TVSBot 的安全机制(透明披露)

我们做的具体事:

  • Fernet AES-128 加密:API key 在 DB 内全程加密, master key 只存环境变量,跟 DB 物理分离
  • Withdraw 侦测:定期扫描你 key 的权限, 一旦发现 Withdraw 被开立刻禁用该 key + email 通知
  • Order-only 推荐:所有教学文件强调禁 Withdraw
  • Bug bounty:报告严重安全漏洞最高 $5,000 奖金

细节见 /security 页。