49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
|
|
# 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,与本机浏览器不共享
|