使用控制台Webhooks
验证 Webhook 来源
Webhooks: 验证 Webhook 来源
校验 Bearer Token
在服务端保存一份与控制台配置一致的 Token,并对每次回调执行校验。校验失败时,不要继续处理 Payload,也不要返回会泄露内部校验原因的详细错误。
使用 HTTPS
生产目标 URL 必须使用 HTTPS,并确保:
- 证书有效且未过期。
- 域名证书与目标域名匹配。
- 服务端支持 GEELAB 使用的 TLS 版本。
- 证书链可被公网服务正常验证。
安全保存和轮换 Token
Token 应保存在服务端环境变量或密钥管理系统中。当前产品的 Token 重新生成和轮换方式,以 Webhooks 页面提供的操作为准。
如果 Token 泄露:
- 立即限制或暂停受影响的 Webhook。
- 更新服务端校验配置。
- 在控制台更新或重新生成 Token(如果页面提供该操作)。
- 发送测试请求验证新配置。
- 检查投递日志中的异常请求。
防止重复处理
为避免同一事件重复影响业务,建议使用 Delivery ID 或 Request ID 实现幂等处理:
- 第一次收到时记录唯一标识并处理。
- 再次收到相同标识时返回成功,但不要重复执行发券、扣款或封禁等操作。
- 将处理状态写入可靠存储,而不是只保存在进程内存中。