HMAC-SHA256 署名を確認して、各 webhook リクエストが実際に Firecrawl から送信されたものかを検証します。これにより、攻撃者によるペイロードの偽装を防ぎ、処理を実行する前にそのデータを信頼できるようになります。
webhook シークレットは、アカウント設定のAdvanced タブで確認できます。各アカウントには、すべての webhook リクエストに署名するために使用される固有のシークレットが割り当てられています。
webhook シークレットは厳重に管理し、決して公開しないでください。漏えいした可能性がある場合は、直ちにアカウント設定から再生成してください。
各 webhook リクエストには、X-Firecrawl-Signature ヘッダーが含まれます:
X-Firecrawl-Signature ヘッダーから署名を取り出す
- パース前の生のリクエストボディを取得する
- シークレットキーを使って HMAC-SHA256 を計算する
- タイミングセーフな比較関数を使って署名を比較する
- すべてのリクエストを確認してください。 webhook のペイロードを処理する前に、必ず署名を確認してください。確認に失敗したリクエストは、
401 ステータスで拒否してください。
- タイミングセーフな比較を使う。 標準的な文字列比較はタイミング情報を漏えいするおそれがあります。Node.js では
crypto.timingSafeEqual() を、Python では hmac.compare_digest() を使ってください。
- エンドポイントは HTTPS 経由で公開してください。 これにより、webhook のペイロードは転送中に暗号化されます。