小编poi*_*rel的帖子

CloudFlare JS 挑战正在打破我的 SPA

我有一个基于 React 的 SPA,它通过 S3 托管在一个子域 react.mydomain.com 上……它与托管在另一个子域 api.mydomain.com 上的 VPS 上的 PHP REST API 通信。api.mydomain.com 位于 CloudFlare 之后。Web 应用程序位于 CloudFront 之后,因为它位于 AWS 上。

我遇到了机器人请求直接发送到 API 淹没我的 VPS 的问题,我想使用 CloudFlare 的 JS 挑战功能来缓解。

然而,似乎正在发生的事情是用户能够加载 React webapp(它不在 CloudFlare 后面)。然后,提示JS挑战的请求会立即失败并返回503响应,因为它是一个AJAX请求,与Javascript挑战不兼容。

我想我可以通过捕获错误和重定向来处理这个问题。但是,如果我手动强制我自己的浏览器导航到 api.mydomain.com URL,我将看到 CloudFlare 挑战并通过它。但是,如果我随后导航回我的 react.mydomain.com SPA,则 OPTIONS 请求将失败,因为它无法附加告诉 CloudFlare 它已通过的 cookie。

我不明白如何调整我的基础设施,以便我可以利用使用 JS 挑战。目前我被限制使用速率限制,但我发现当我变得足够严重以至于用户开始抱怨时,我仍然让大约 75% 或更多不需要的机器人流量通过。

security cors cloudflare laravel reactjs

9
推荐指数
1
解决办法
1373
查看次数

标签 统计

cloudflare ×1

cors ×1

laravel ×1

reactjs ×1

security ×1