核心用法
browser-control 是一项远程浏览器控制技能,旨在解决 AI 代理无法直接处理的敏感网页交互场景。其核心架构为本地 VNC 服务器 + noVNC 网页界面 + ngrok 安全隧道,最终通过 Google OAuth 实现身份校验。
标准工作流:
1. 运行 status.sh 检查隧道状态
2. 若未运行,执行 start-tunnel.sh 启动(约 30 秒)
3. 实时读取 config.json 获取动态 URL(⚠️ 禁止缓存)
4. 将含自动连接参数的 noVNC 链接发送给用户
5. 用户通过 Google 账号完成 OAuth 认证,进入浏览器环境
6. 用户执行手动操作(登录、2FA、验证码等)
7. 用户确认完成后,AI 可通过 localhost:9222 的 CDP 协议继续自动化操作
8. 可选执行 stop-tunnel.sh 关闭隧道
关键设计: 隧道 URL 每次重启都会变化,且 VNC 密码已嵌入链接参数,实现"单次有效、自动登录"的无密码体验。
显著优点
- 身份安全: Google OAuth 替代传统密码,避免凭证泄露风险
- 最小权限: 仅预配置的单一邮箱可访问,天然白名单机制
- 动态隐蔽: ngrok 子域名随机生成,增加攻击者探测难度
- 零配置门槛: 用户端仅需浏览器,无需安装任何客户端
- 无缝衔接: 人工操作完成后,AI 可通过 Chrome DevTools Protocol 接管浏览器继续自动化任务
潜在缺点与局限性
- 服务依赖: 依赖 ngrok 免费/付费隧道服务,存在服务商可用性风险
- 会话不持久: 服务器重启后隧道不自动恢复,需手动重启
- 延迟敏感: 远程 VNC 对网络延迟敏感,复杂交互体验可能卡顿
- OAuth 锁定: 强制绑定 Google 账号,对隐私敏感用户或企业防火墙环境可能造成阻碍
- 单用户限制: 设计上为单用户场景,不支持并发多人协作
适合人群
- 需要偶尔处理强认证网站(银行、政务、企业 SSO)的自动化开发者
- 无法直接获取 API 凭据,必须通过网页端完成授权流程的场景
- 对安全性有一定要求,但能接受手动介入的半自动化工作流
常规风险
| 风险项 | 说明 |
|--------|------|
| 隧道暴露期 | 运行期间 ngrok URL 可被任何人访问(需 OAuth),建议用后即停 |
| 配置读取失误 | 若使用缓存的 `config.json` 数据,用户将无法连接 |
| 会话劫持 | 若用户在公共环境点击链接,存在屏幕被窥视风险 |
| 服务条款 | ngrok 免费层有速率限制,商业场景需评估合规性 |