feat: 增强 OAuth 回调地址验证,确保仅接受有效的 localhost 回调

This commit is contained in:
QLHazyCoder
2026-04-11 01:31:43 +08:00
parent b6a850062b
commit bac7113c0c
3 changed files with 86 additions and 30 deletions
+17
View File
@@ -242,6 +242,12 @@ Step 3 使用的注册邮箱。
### Step 8: Manual OAuth Confirm
严格回调捕获规则:
- 步骤 8 现在只接受 `http(s)://localhost:<port>/auth/callback?code=...&state=...`
- 监听范围只限于当前 OAuth 认证标签页的主 frame 跳转
- 普通 `localhost` 页面,包括本地部署的 CPA 面板,不会再被误判为回调地址
虽然按钮名称还是 `Manual OAuth Confirm`,但当前代码已经做了自动尝试:
- 在授权页定位“继续”按钮
@@ -259,6 +265,11 @@ Step 3 使用的注册邮箱。
### Step 9: CPA Verify
校验规则:
- 步骤 9 会拒绝任何不是真实 `/auth/callback`,或缺少 `code` / `state``localhostUrl`
- 成功后的清理只会针对 `/auth` 这一类真实回调标签页,不会再泛化清理任意 localhost 路径
回到 CPA 面板:
- 自动填写 localhost 回调地址
@@ -381,6 +392,12 @@ sidepanel/ 侧边栏 UI
### 5. Step 8 失败时重点检查
补充检查项:
- 确认回调路径仍然是 `/auth/callback`
- 确认回调 query 里仍然同时包含 `code``state`
- 如果 CPA 部署在 `localhost`,确认当前看到的页面是真实 OAuth 回调,而不是 CPA 面板自身页面
- OAuth 同意页 DOM 是否变化
- “继续”按钮是否变成了别的文案
- localhost 回调是否真的触发