Webhook
クライアント(発信元のWebサイトまたはアプリケーション)がサードパーティユーザーのサーバーにwebhook呼び出しを行う場合、スプーフィング攻撃を回避するために、受信したPOSTリクエストを認証する必要がある。クライアントを認証するためには、次にようなさまざまな手法がある。
受信エンドポイントが、要求を許可する既知のソースのIPアドレスのリストを保持する。
HTTPのBasic認証を使用して、クライアントを認証する。
Webhookに、イベントの種類に関する情報、Webhookを検証するためのシークレットまたは署名を含める。
HMAC署名をHTTPヘッダーに含める。 GitHubとStripeはこの方法を利用している。
SHA-1を使用してリクエストに署名する。Facebookはこの方法を利用している。
接続が確立されたときにMutual TLS認証(英語版)を使用する。エンドポイント(サーバー)はクライアントの証明書を検証できる。