Discordのウェブフック:それが何か、安全に保つ方法
Discordのウェブフックとは、ボットのアカウントなしで、外部のアプリが一つのチャンネルにメッセージを投稿できるようにする非公開のURLです。 そのURLを持つ人は誰でもそこに投稿できるため、ウェブフックのリンクはパスワードと同じくらい非公開にしてください。
ウェブフックの働き
チャンネル設定、連携で、ウェブフックを作成します。Discordは、ウェブフックのIDと秘密のトークンを含むURLを発行します。別のプログラムがそのURLにメッセージを送ると、Discordはそれをウェブフックの名前とアバターでチャンネルに投稿します。ログインも、招待するボットもありません。
そのためウェブフックは、外部のサービスをつなぐ最も簡単な方法です。たとえば、コードのホストがコミットを知らせる、ストアがセールを投稿する、ステータスページが障害を報告する、フィードのリーダーが新しい記事を共有するといった使い方です。
ウェブフックにできないこと
ウェブフックは送信しかできません。メッセージを読んだり、コマンドに反応したり、メンバーを見たり、ロールを管理したりはできません。対話的なことには、スラッシュコマンドやボタンを使うボットが必要です。また、ウェブフックは一つのチャンネルにしか投稿できませんが、そのチャンネルのスレッドには投稿できます。
ウェブフックのメッセージは、埋め込み、ファイル、カスタムのユーザー名を含められますが、他のすべてと同じように、Discordのレート制限の対象です。
URLを非公開に保つべき理由
URLの中のトークンだけが保護になっています。それが漏れると、見知らぬ人があなたのチャンネルに投稿し、人をメンションし、本物らしい偽のお知らせを送れます。Discordには、あなたと彼らの違いがわかりません。
- ウェブフックのURLを、公開のチャンネル、サポートのスレッド、スクリーンショットに貼らないでください。
- 連携ごとに別のウェブフックを与えてください。そうすれば、一つを削除しても、残りは壊れません。
- URLが漏れたら、チャンネル設定、連携でウェブフックを削除し、新しく作ってください。削除すると、古いリンクはすぐに使えなくなります。
- ときどき一覧を見直してください。見覚えのないウェブフックは削除してください。
ウェブフックの管理権限は、信頼できる人にだけ与えてください。その権限を持つ人は誰でも、ウェブフックを作り、好きな名前で投稿できます。
ウェブフックとNoxyr
Noxyrのサーバーの健康チェックは、100点満点のセキュリティスコアの一部として、サーバーのウェブフックを確認します。他には、@everyoneの権限や、管理者の権限を持つロールの数も見ます。スコアと修正方法は保護のドキュメントで説明しています。Noxyr自体は、あなたが作成しなければならないウェブフックではなく、ボットを通じて投稿します。
チャンネルで何が起きているかを把握するにはサーバーログを、サーバーを守る全体像についてはセキュリティボットのページをご覧ください。
よくある質問
Discordのウェブフックは何に使われますか?
ボットを動かさずに、ステータスページ、ストア、コードのホストなど、別のサービスからチャンネルにメッセージを投稿するために使われます。
ウェブフックのURLは秘密ですか?
はい。URLを持つ人は誰でもチャンネルに投稿できます。漏れたら、ウェブフックを削除して作り直してください。
ウェブフックはメッセージを読んだり、コマンドを実行したりできますか?
いいえ。ウェブフックは送信だけです。コマンドやボタンにはボットが必要です。