Discord 机器人令牌:它是什么以及如何保护它
机器人令牌是证明某个程序被允许以特定 Discord 机器人身份行事的秘密字符串。 拥有它的任何人都可以以该机器人的身份登录,并使用它的所有权限,因此要像对待密码一样对待它,一旦暴露就立即重置。
令牌是什么
当你在 Discord 开发者门户中创建应用并向其添加机器人时,"机器人"页面可能会显示一个令牌。它是一长串由字母、数字和点组成的字符。你的机器人代码在连接 Discord 时会发送它,而 Discord 借此判断是哪个机器人在调用。
令牌与公开的应用 ID 不同,也不同于用于登录流程的 client secret(一个独立的秘密)。
暴露的令牌允许什么
拿到令牌后,陌生人就能从自己的机器上运行这个机器人。他们可以以机器人的身份发送消息,读取机器人能看到的内容,并在机器人所在的每个服务器中使用它拥有的每一项权限。在一个大型服务器中,拥有管理员或封禁成员权限的机器人,落入不当之人手中就是严重的风险。
Discord 会监控泄露。如果令牌被发布在公开的代码仓库中,Discord 会检测到它,将其重置,并通知所有者。不要依赖这一点,因为通过私人聊天或截图分享的令牌不会被捕获。
保护令牌
- 永远不要把它粘贴到 Discord 频道、支持工单、截图或公开代码仓库中。
- 将它保存在环境变量或不提交到版本控制的密钥文件中。
- 只给机器人它需要的权限和意图,这样泄露造成的危害会更小。
- 如果你有任何疑虑,请在开发者门户中重置它。重置会立即使旧令牌失效,然后你用新令牌更新自己的设置。
任何正当的服务都不需要你的 client secret。只需要机器人令牌,而且仅在运行你机器人的托管服务中需要。
令牌与 Noxyr
普通的 Noxyr 机器人不需要你提供令牌。你只需通过邀请链接添加它。当你设置一个以你自己的机器人名称和头像运行 Noxyr 功能的自定义机器人时,令牌才会派上用场。为此,你需要创建自己的 Discord 应用,并在开启"服务器成员"和"消息内容"意图的情况下,将机器人令牌提供给 Noxyr。Noxyr 从不索要 client secret,你随时可以关闭自定义机器人或移除令牌,这会使你的服务器恢复为普通的 Noxyr 机器人。
将令牌交给托管服务商是一项真正的信任决定,把机器人令牌交给托管服务是否安全一文解释了需要权衡的内容。关于重置的更多细节,请参阅完整的机器人令牌指南。
常见问题
如果我的机器人令牌泄露了,我该怎么办?
打开开发者门户,进入你的机器人页面,并立即重置令牌。然后更新所有使用旧令牌的地方。
机器人令牌与 client secret 相同吗?
不同。它们是两个独立的秘密。Noxyr 自定义机器人只需要机器人令牌,从不需要 client secret。
离开页面后我还能找回令牌吗?
Discord 只在你重置或创建时显示它。如果你丢失了它,请重置以获得新的令牌。