Discord Webhook:它是什么,以及如何保持安全
Discord webhook 是一个私密的 URL,允许外部应用无需机器人账号即可把消息发布到某一个频道中。 持有该 URL 的任何人都可以在那里发帖,因此 webhook 链接应当像密码一样保密。
webhook 的作用
你在频道设置的"集成"中创建 webhook。Discord 会给你一个 URL,其中包含 webhook ID 和一个秘密令牌。当另一个程序向该 URL 发送消息时,Discord 会以 webhook 的名称和头像在频道中发布它。无需登录,也无需邀请机器人。
这使得 webhook 成为连接外部服务最简单的方式:代码托管平台宣布一次提交,商店发布一次促销,状态页面报告一次故障,订阅阅读器分享新文章。
webhook 不能做什么
webhook 只能发送。它不能读取消息、响应命令、查看成员或管理角色。任何交互性的功能都需要使用斜杠命令或按钮的机器人。webhook 也只能发布到一个频道,不过它可以发布到该频道的话题串中。
webhook 消息可以包含 embed、文件和自定义用户名,并且与其他一切一样受到 Discord 速率限制的约束。
为什么 URL 必须保持私密
URL 中的令牌是唯一的保护。如果它泄露,陌生人就能在你的频道中发帖、提及他人,并发出令人信服的虚假公告。Discord 无法区分你和他们。
- 切勿把 webhook URL 粘贴到公开频道、支持话题串或截图中。
- 为每个集成提供各自的 webhook,这样你可以移除其中一个而不影响其他。
- 如果 URL 泄露,请在频道设置的"集成"中删除该 webhook,然后创建一个新的。删除它会立即切断旧链接。
- 时不时检查一下列表。任何你不认识的 webhook 都应该移除。
只把"管理 Webhook"权限授予你信任的人。拥有它的任何人都可以创建 webhook,并以任何他们喜欢的名称发布内容。
webhook 与 Noxyr
Noxyr 的服务器健康检查会把你服务器中的 webhook 纳入其 100 分制安全评分的考量,同时还包括 @everyone 的权限以及拥有管理员角色的数量。评分和修复方法见保护文档。Noxyr 自身通过机器人发布消息,而不是通过你需要自行创建的 webhook。
常见问题
Discord webhook 用来做什么?
无需运行机器人,即可从另一项服务(例如状态页面、商店或代码托管平台)把消息发布到某个频道中。
webhook URL 是秘密吗?
是的。任何持有该 URL 的人都可以向频道发帖。如果它泄露,请删除并重新创建该 webhook。
webhook 能读取消息或运行命令吗?
不能。webhook 只负责发送消息。命令和按钮需要机器人。