Files
Nexus/docs/changelog/2026-06-12-browser-captcha-stealth.md
T

49 lines
1.7 KiB
Markdown
Raw Normal View History

# 2026-06-12 远程浏览器 — 验证码 / 反自动化优化
## 摘要
针对阿里云等站点验证码失败:Worker 改为 headed + Xvfb + 反自动化指纹;前端滑块拖动支持窗口级鼠标跟踪与平滑步进。
## 动机
用户反馈阿里云验证码过不去。根因非 Nexus URL 拦截,而是 headless Chromium 被风控识别,且拖滑块时鼠标移出 canvas 会丢失 move 事件。
## 涉及文件
| 区域 | 文件 |
|------|------|
| Worker | `browser_stealth.py`, `session_manager.py`, `config.py`, `Dockerfile`, `docker-entrypoint.sh`, `docker-compose.yml` |
| 前端 | `useRemoteBrowserSession.ts`, `GlobalBrowserPanel.vue` |
## 变更要点
- 去掉 `--enable-automation``disable-blink-features=AutomationControlled`init script 隐藏 `navigator.webdriver`
- 默认 `WORKER_HEADLESS=false`,容器内 Xvfb `:99`
- 中文 locale / Asia/Shanghai / 常见 Chrome UA
- Screencast JPEG quality 90
- MOUSE`down/up` 先 move 到位;`move` 支持 `steps`;新增 `click`
- 前端:mousedown 后 `window` 级 mousemove/mouseup,滑块拖出画面仍有效
## 部署
```bash
# Worker
cd /opt/nexus-browser-worker && docker compose up -d --build
# 前端
cd frontend && npx vite build
# sync_webapp_to_container.sh
```
Worker `.env` 可选:`WORKER_HEADLESS=false`(默认)、`WORKER_SCREENCAST_QUALITY=90`
## 验证
- 打开 `https://account.aliyun.com` 或控制台登录页,滑块可拖到底
- 仍失败时:Worker IP 为机房段,阿里云可能加强风控 — 可本机 Chrome 登录后仅浏览公网页,或换住宅 IP Worker
## 残余限制
- 无法保证 100% 通过所有风控(拼图、短信、设备指纹)
- Cookie 在 Worker Profile,与本机浏览器不共享