问题
对后端 API /api/interview 做梯度压测,发现并发超过 2~3 就大面积失败,且没有任何限流保护。开源后所有人都能调用,这会直接导致体验崩溃和账单风险。
压测结果
单次调用正常(约 5 秒返回),但并发上升后迅速崩溃:
| 并发 |
成功 |
失败 (5xx) |
| 1 |
1 |
0 |
| 5 |
2 |
3 |
| 10 |
2 |
8 |
| 20 |
0 |
20 |
| 40 |
0 |
40 |
关键发现
- 扛不住并发:单人使用没问题,但几个人同时用就大面积报错。
- 崩的是上游 AI,不是 Worker:失败响应为
502 {"error":"Interview service request failed"},这是 Worker 在上游 AI 调用失败时返回的。真正瓶颈是 AI API Key 的速率限制被打满。「双模型草拟 + 综合」一次请求要调多次 AI,更容易触顶。
- 完全没有限流保护:全程 0 个 429。不是「主动保护自己」,而是「被动崩溃」。
- API 完全开放:CORS 只限制了浏览器来源(
ainancool.github.io),但脚本/curl 可无视 CORS 直接调用——已用伪造 Origin 验证成功返回。任何人可无限调用,成本由维护者承担。
复现
curl -s -X POST "https://<worker-domain>/api/interview" \
-H "Content-Type: application/json" \
-d '{"mode":"start","config":{"company":"测试","position":"测试","jd":"测试","roundInfo":"","persona":"formal"},"history":[]}'
并发发起 5+ 个上述请求即可观察到 502。
建议(均需 Worker 代码权限)
- 省钱防刷:加人机验证(如 Cloudflare Turnstile)+ 基于 IP 的限流,超限返回 429 而非崩溃。
- 扛并发:对上游 AI 调用加排队 / 重试 / 退避,或更换更高配额的 Key。
- 收紧 CORS + 服务端校验:CORS 仅浏览器有效,需在 Worker 端做真正的来源/凭证校验。
前置阻塞
以上均需修改 Cloudflare Worker 代码。
问题
对后端 API
/api/interview做梯度压测,发现并发超过 2~3 就大面积失败,且没有任何限流保护。开源后所有人都能调用,这会直接导致体验崩溃和账单风险。压测结果
单次调用正常(约 5 秒返回),但并发上升后迅速崩溃:
关键发现
502 {"error":"Interview service request failed"},这是 Worker 在上游 AI 调用失败时返回的。真正瓶颈是 AI API Key 的速率限制被打满。「双模型草拟 + 综合」一次请求要调多次 AI,更容易触顶。ainancool.github.io),但脚本/curl 可无视 CORS 直接调用——已用伪造 Origin 验证成功返回。任何人可无限调用,成本由维护者承担。复现
并发发起 5+ 个上述请求即可观察到 502。
建议(均需 Worker 代码权限)
前置阻塞
以上均需修改 Cloudflare Worker 代码。