跑量化、对接 TradingView 报警、用第三方面板查看持仓的人,绕不开 币安官网 的 API key 配置。这是一根连接你账户和外部脚本的电缆,币安官方APP 上能查到所有 API 的最近调用情况,iPhone 用户参考 iOS 安装教程 装好客户端后随时可以撤销可疑 API。
A:保护 API key 的三条铁律——权限最小化(只开"读",提币永远关闭)、绑定固定出口 IP、定期 90 天轮换。三件做到一件不漏,账户被搬空的概率降到接近零。
API key 是怎么被搬空的
A:现实中 99% 的搬空案例不是币安系统漏洞,而是 API key 在用户侧被泄露——存放代码仓库、写在配置文件被其他程序窃取、用了存在漏洞的第三方面板。
真实泄露场景
- GitHub 公开仓库——把
config.json连同 API key 一起 push 上去,没几小时就被爬虫抓走 - Discord/Telegram 群聊截图——分享脚本截图时 API key 没打码
- 浏览器扩展程序——装了恶意插件,监听到你输入的 Secret
- 第三方量化平台跑路——你把 API key 给了某个量化平台,平台被攻破或者直接卷款跑了
- 本地电脑被入侵——木马读取你的
.env文件 - 键盘记录器——你登录某个面板时输入 API key 被记录
- Wi-Fi 中间人攻击——公共 Wi-Fi 下传输 API key 没走 HTTPS
- 客服钓鱼——假客服骗你提供 API 信息
一旦泄露,如果你开了"提币权限",攻击者会立刻把所有币种全部提到他的地址;如果你开了"合约交易",他会用你的余额开 100 倍杠杆反向交易把账户爆仓;如果你只开了"现货交易",他会用市场价快速买入然后高价卖出对敲洗钱。
第一步:创建 API key 时只开必要权限
A:每一个 API key 都要按"用途"单独创建,永远不要建一个"全能 key"。
权限分类
- 读取(Read Only)——能查询余额、查询订单、查询历史,不能下单不能转账
- 现货 / 杠杆交易(Enable Spot & Margin Trading)——能下现货和杠杆订单
- 合约交易(Enable Futures)——能开合约仓位
- 提币(Enable Withdrawals)——能把币转到外部地址
- 通用转账(Enable Universal Transfer)——能在你账户内不同钱包间转移
- 白名单提币(Permits Universal Transfer to Whitelisted Wallets Only)——只允许提到白名单
各类需求的最小权限
| 用途 | 应开权限 | 必须关闭 |
|---|---|---|
| 仅查看余额 / 持仓监控面板 | 仅 Read | 其他全关 |
| 报税软件计算盈亏 | 仅 Read | 其他全关 |
| 量化策略下单(现货) | Read + Spot Trading | 提币、合约、转账 |
| 合约量化 | Read + Futures Trading | 提币、现货、转账 |
| 自动转账到冷钱包 | Read + Withdrawal(强烈建议改用人工) | 不建议自动化 |
| TradingView 报警下单 | Read + Spot Trading | 提币、合约 |
绝对不要给任何 API 开提币权限——除非你有非常特殊的业务流程,且配合 IP 白名单 + 提币白名单地址锁死。普通用户的最佳实践是:API 永远不开提币,提币只用人工操作。
第二步:必须绑定 IP 白名单
A:不绑 IP 的 API key 等于裸奔的钥匙——任何拿到 key 的人从任何地方都能用。
怎么获取自己的 IP
- 部署在云服务器上的脚本:登录服务器执行
curl ifconfig.me,记下返回的公网 IP - 部署在家里的 PC/树莓派:访问
https://ip.sb或https://whatismyipaddress.com - 用了静态 IP 服务的:填写 ISP 给你的固定 IP
- 用了 VPN 的:填写 VPN 出口 IP
在币安绑定 IP
- 创建 API 时勾选「Restrict access to trusted IPs only」
- 输入 IP 地址(最多 30 个)
- 多个 IP 用空格分隔
- 不要填写
0.0.0.0/0——那等于不限制 - 保存
如果你的 IP 是动态的怎么办
家庭宽带通常是动态 IP,每次拨号或者每隔几天会变。三个解决方案:
- 租一台云服务器(阿里云/腾讯云/AWS 入门级 $5/月)——上面跑 API 调用,云服务器 IP 是固定的
- 用云函数 + 固定出口——AWS Lambda、Cloudflare Workers 配合 NAT 网关
- 找 ISP 申请固定 IP——部分运营商提供,每月几十块加钱
强烈不推荐"不绑 IP 因为我家 IP 会变"——这等于完全放弃了一道关键防线。
第三步:API key 的存储
A:API key 的 Secret 只在创建那一刻显示一次,关掉页面就再也看不到了。存储位置直接决定泄露概率。
推荐的存储方式
- 环境变量(推荐)——
.env文件加入.gitignore,运行时process.env.BINANCE_API_KEY读取 - 服务器密钥管理服务——AWS Secrets Manager、Google Secret Manager、HashiCorp Vault
- 本地加密存储——用 1Password、Bitwarden 这种密码管理器存
- 硬件安全模块(HSM)——大额机构才需要
绝对不要这样存
- 写在源代码里直接 commit 到 Git
- 截图分享给"教学"的人
- 存在
~/Downloads/binance-api.txt - 通过邮件、微信、Telegram 发给团队成员
- 写在 Notion、语雀、有道云等云笔记里
- 复制粘贴到 ChatGPT 让它帮你写代码
Git 提交检查清单
每次 commit 前:
git diff --staged | grep -i "api\|secret\|key"
发现疑似 key 立刻 unstage。已经误传到 GitHub 的 key 即使删掉提交也算泄露——Git 历史里还在,必须立刻去币安撤销那个 key。
第四步:定期轮换 API key
A:再安全的 key 也要 90 天轮换一次,这是行业标准做法。
轮换流程
- 创建一个新的 API key(新 key 用新名字
bot_v2_2026Q2) - 配置同样的权限和 IP 白名单
- 在你的脚本/平台里替换成新 key
- 测试新 key 工作正常
- 回到币安撤销旧 key(点「Delete」)
必须立刻轮换的触发场景
- 收到币安「您的 API 在 XX 时间从 XX IP 调用」的异常告警
- 你的服务器换了运营商或迁移
- 团队成员离职(如果 key 共享过)
- 第三方平台你不再使用了
- 你升级了量化框架版本,旧 key 用过的代码不再可信
第五步:监控 API 调用日志
A:币安 API 管理页面有"最近调用"记录,每周看一次能在第一时间发现异常。
关注的指标
- 调用频次突然飙升——可能被攻击者批量下单
- 调用 IP 偏离白名单——除非你换了服务器,否则不应该出现新 IP
- 失败次数异常增加——可能有人在试错权限
- 大额订单被拒绝——可能攻击者尝试超出余额的下单
异常处理
- 立刻撤销可疑 API key
- 查看账户其他设置有无被改
- 给客服开工单
- 检查所有其他 API key 是不是也有类似异常
不同场景的 API 安全配置对比
| 场景 | 权限组合 | IP 限制 | 轮换周期 | 风险等级 |
|---|---|---|---|---|
| 个人现货量化 | Read + Spot | 必须 | 90 天 | 中 |
| 个人合约量化 | Read + Futures | 必须 | 60 天 | 高 |
| 多平台行情聚合 | 仅 Read | 推荐 | 180 天 | 低 |
| 报税软件对接 | 仅 Read | 推荐 | 365 天 | 低 |
| 多账户机构操作 | Read + Spot + 子账户隔离 | 必须 | 30 天 | 高 |
| 跨链桥自动化 | 自动提币(不推荐) | 必须 + 白名单地址 | 30 天 | 极高 |
常见问题
Q:API key 泄露了能不能联系币安冻结? A:能但慢。最快的处理是你自己进 API 管理直接「Delete」该 key,立刻失效。同时给客服开工单要求账户安全审核。币安客服处理 API 泄露事件比处理账户被盗效率更高,因为 API 行为有完整日志。
Q:API 限流是怎么算的? A:币安 API 限流分两类——按 weight(每分钟 6000 weight)和按 order count(每 10 秒 50 单、每天 16 万单)。普通量化策略不会触及限流,但如果你跑高频策略,会接近上限。被限流时返回 429 / 418 错误,超过太多会被临时封 IP。
Q:Testnet 和正式环境的 API key 通用吗?
A:不通用。币安提供 Testnet(测试网)用于开发调试,地址是 testnet.binance.vision,发的是测试币没有真实价值。Testnet 的 API key 不能用于正式环境,反之亦然。开发新策略一定先在 Testnet 跑通再上正式。
Q:HMAC 签名是怎么回事,不签会怎样?
A:币安 API 的私有接口(账户、下单、提币)必须用 API Secret 对请求参数做 HMAC-SHA256 签名,签名错就拒绝。这是防止篡改和重放的关键机制。所有正规 SDK(如官方 python-binance、node-binance-api)都自动处理签名,自己写 HTTP 请求也必须实现。不签的请求币安直接 401。
Q:API 调用走的是什么协议,HTTP 还是 HTTPS? A:必须是 HTTPS。币安 REST API 全部强制 HTTPS(TLS 1.2+),WebSocket 是 WSS。任何 HTTP 调用都会被拒绝。这能确保你和币安之间的传输不被中间人嗅探到 API key。
Q:移动端 APP 可以创建 API key 吗? A:可以查看和删除,但创建必须在网页端完成。这是币安故意的——创建 key 涉及输入 2FA + 邮箱验证 + IP 配置等多步操作,移动端容易被肩窥或截屏泄露。建议养成习惯:API key 操作只在私人 PC 上做,移动端只用于紧急撤销。
Q:第三方平台(比如某量化网站)要我提供 API key,给吗? A:要看平台。如果是 Coinglass、TradingView 等大型可信平台,且只索取 Read 权限,可以考虑给。但永远不给任何平台开提币权限。给之前查清楚平台口碑、是否有大规模用户、有没有过资金事故。给完之后定期检查 API 调用日志,发现异常立刻撤销。