用途:用于接收第三方服务(如 Stripe、PayPal、GitHub、GitLab)的 Webhook,或自建 Webhook 投递系统,对任何接收外部 POST 请求的端点做纵深防御。
主要能力:按四层流程处理——1) HMAC-SHA256 签名验证,签名无效直接拒绝;2) 时间戳校验,超过 5 分钟容差拒绝,防重放;3) 幂等检查,已处理事件跳过;4) 执行业务逻辑。提供通用 WebhookVerifier、Stripe/GitHub/Twilio 专用验证函数、基于 Redis 的 IdempotencyHandler,以及 Express 中间件与 FastAPI 依赖两种集成方式,并给出自建发送端的签名与请求头示例。
使用方式:Webhook 路由必须使用原始 body 解析器(如 express.raw),在解析 JSON 前完成签名验证;签名比较使用常量时间比较(crypto.timingSafeEqual / hmac.compare_digest);密钥放环境变量,仅用 HTTPS,日志不得泄露密钥;处理完成后快速返回 200,耗时逻辑异步执行。
适用场景:支付回调、代码托管平台事件、消息服务回调,以及自建 Webhook 投递。
限制:资料未提供具体安装命令、依赖版本、性能数据与收费信息;示例默认容差 300 秒、幂等 TTL 86400 秒,可按需调整。