CloudFlare 中白名单 Twilio 请求的等效替代方案

Equivalent alternative to Whitelisting Twilio requests in CloudFlare

我的要求: 使用 CloudFlare 防止非 Twilio 访问我的 ALB 托管应用程序。

我的限制: 由于 Twilio 云设计的性质,由于请求可能来自广泛的 IP 池,因此无法将对一组 IP 的访问列入白名单。

可能的解决方案: Twilio 在 https://www.twilio.com/docs/usage/security 下建议了几个选项,但我不知道如何使用这些方法中的任何一种来仅允许 twilio 流量。但是任何设计的验证必须只应用于我站点的 url 中 /api 的 dns 记录。

更多信息: 底层应用程序是用 php 编写的。 我更喜欢 CloudFlare 解决方案而不是更改应用程序中的代码。

可能的方法是:

  • 使用 Cloudflare Firewall Rules 检查 api 路径上是否存在 X-Twilio-Signature(作为第一个基本检查),阻止没有它的请求。
  • 使用 Cloudflare Worker,配置在您的 API 路径上。工作代码可以读取 X-Twilio-Signature 和请求数据,并使用 Twilio 文档中描述的过程来验证它。如果匹配,则将请求转发到您的负载均衡器。如果没有,return 给调用者一个错误。

此外,请确保您的源服务器只接受来自 Cloudflare 的流量以防止直接篡改。