jim800121chen
c9f7eab682
fix(proxy): tunnel 轉發剝除 Origin header 修「開始推論」403
雲端瀏覽器點「開始推論」→ POST /api/devices/{id}/inference/start,
瀏覽器自動帶的 Origin(stage 網域)經 nginx→api-server proxy→tunnel
透傳到 local agent,被 local agent CORSMiddleware(只允許 loopback
Origin)擋回 403。local agent 的 CORS 是為「本機模式 UI 直連」設計,
不該套用在經 tunnel 中繼的 server-to-server 請求。
修法:api-server 的 copyProxyRequestHeaders 剝除 Origin header(比照
既有 Authorization 過濾、EqualFold case-insensitive),local agent 收到
無 Origin → 走 same-origin 放行路徑。
安全邊界:copyProxyRequestHeaders 全 codebase 只用於 tunnel 轉發
(proxy.go newProxyHandler),不影響 api-server 面向瀏覽器的
CORSMiddleware(另一套 gin-contrib/cors)。Reviewer 0C/0M 通過、
Security APPROVE(剝 Origin 不開 CSRF 面,真正閘門在 api-server
AuthMiddleware + SameSite=Lax cookie)。
+2 test(Origin/Authorization 剝除 + case-insensitive)6/6 PASS。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 04:27:49 +08:00
..
2026-07-09 04:27:49 +08:00
2026-06-21 06:36:35 +08:00
2026-05-01 11:21:20 +08:00
2026-06-28 07:38:25 +08:00
2026-06-27 03:18:59 +08:00
2026-05-01 11:21:20 +08:00
2026-06-21 06:36:35 +08:00
2026-06-21 06:36:35 +08:00
2026-06-07 04:06:09 +08:00
2026-05-01 11:21:20 +08:00
2026-06-28 07:38:25 +08:00
2026-06-27 03:18:59 +08:00
2026-05-01 11:21:20 +08:00
2026-06-21 06:36:35 +08:00
2026-06-21 06:36:35 +08:00
2026-05-01 11:21:20 +08:00
2026-06-21 06:36:35 +08:00
2026-06-21 06:36:35 +08:00
2026-05-01 11:21:20 +08:00