资安 · 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 等流程类似):
- 登入 Binance → 右上头像 →
API Management Create API→ 选System generated(HMAC,最常用)Label填名称(例如tvsbot-prod) 方便日后辨识- 完成 2FA 验证
- 拿到
API Key跟Secret Key。Secret 只会显示一次,立刻复制存到密码管理工具 (如 1Password / Bitwarden) - 点该 Key 旁边
Edit restrictions:- ✅ Enable Reading(一定要)
- ✅ Enable Spot & Margin Trading(自动下现货/杠杆)
- ✅ Enable Futures(自动下期货)
- ❌ Enable Withdrawals(一定不要)
- ❌ Permits Universal Transfer(不需要就不勾)
Restrict access to trusted IPs only→ 填 SaaS 平台 IP (或 VPS IP)- 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),立刻:
- Binance API Management → 找到该 Key →
Delete - 检查近期订单 / 提币记录是否有异常
- 如果有 Withdraw 权限且发现可疑提币 → 立刻联络 Binance 客服 + 报警
- 建立新 Key(这次确保禁 Withdraw + IP 白名单)
- 用密码管理工具存新 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。
免费注册 TVSBot8. TVSBot 的安全机制(透明披露)
我们做的具体事:
- Fernet AES-128 加密:API key 在 DB 内全程加密, master key 只存环境变量,跟 DB 物理分离
- Withdraw 侦测:定期扫描你 key 的权限, 一旦发现 Withdraw 被开立刻禁用该 key + email 通知
- Order-only 推荐:所有教学文件强调禁 Withdraw
- Bug bounty:报告严重安全漏洞最高 $5,000 奖金
细节见 /security 页。