gpt4 book ai didi

ssl - 为什么 webhook 使用 secret ?为什么不只使用 SSL?

转载 作者:行者123 更新时间:2023-12-04 22:39:37 24 4
gpt4 key购买 nike

标准做法是事件通知服务在您向其注册端点时为您提供一个 secret ,然后该服务使用该共享 secret 签署它发送到您的端点的消息,以便您的服务器可以验证消息是合法的.
但是,为什么这是必要的?假设您的端点和事件通知服务都使用 HTTPS,难道 HTTPS 不应该处理您需要的一切,从而使整个 secret 和签名过程变得多余吗?是不依赖 SSL 证书,还是允许客户端使用非 HTTPS 的端点?

最佳答案

签名 secret 在这里确保事件确实来自 Stripe。签名还与特定的时间戳相关联,以避免“重放攻击”。
如果没有这个 secret ,我可以找出或猜测您构建的 webhook 处理程序,例如 checkout.session.completed事件,然后我会给你发送一个假事件 evt_123例如,使您看起来付款成功,让我可以访问该产品。有一些方法可以解决这个问题(难以猜测端点、Stripe IP 地址的允许列表、URL 中的 secret 等),但它们都有缺点。
同样,如果我能找到有效的事件的有效负载,我可以重复使用相同的有效负载(我知道它是有效的,因为你接受了它)并每天重播它,以继续每天访问某些内容。使用 Stripe 构建的 webhook 签名逻辑,签名与特定的时间戳相关联,例如,如果签名超过 10 分钟,您可以拒绝事件。 Stripe 在其文档 here 中对此进行了介绍.

关于ssl - 为什么 webhook 使用 secret ?为什么不只使用 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71417605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com