通过检查每个 Webhook 请求的 HMAC-SHA256 签名,验证它确实来自 Firecrawl。这可以防止攻击者伪造 payload,并让你在处理数据之前确认其可信性。
你的 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 负载在传输过程中被加密。