Skip to content

安全

browser-bridge 赋予 Agent 对你浏览器的全操控权限(读页面、点按钮、执行脚本、截图)。使用前请理解下面的模型。

鉴权

  • 扩展与 gateway 之间用 pairing token 鉴权:扩展每次连接的第一条 hello 消息携带 token,不匹配立即断开(WS close code 4003),并且进入 30 秒慢退避。
  • token 存在两处:扩展的本地存储(chrome.storage.local)与 gateway 进程参数。不要把 token 提交进代码仓库或贴在公开渠道
  • gateway 未显式提供 token 时会随机生成一个并打印在日志里——重启即换,适合试跑,不适合长期使用。

传输加密

gateway 自身不做 TLS 终结,传输安全由部署方式决定:

方案加密适用
ws:// 直连❌ 明文仅限可信内网 / 本机
Tailscale / WireGuard✅ 隧道加密推荐,零配置
caddy / nginx 反代 + wss://✅ TLS公网部署必须

公网明文 ws:// 等于把浏览器操控权暴露给整条链路上的窃听者,请勿使用。

最小权限:--allow-url

给 gateway 启动加允许列表,Agent 的 browser_navigate / browser_tab_open 就只能去允许的站点:

bash
node packages/gateway/dist/cli.js serve --token <t> \
  --allow-url '^https://(github\.com)/' \
  --allow-url '^https://.*\.corp\.example\.cn/'

越界导航返回 url_not_allowed 错误。注意:允许列表只约束「导航目标」;Agent 仍可在已打开页面上执行 browser_evaluate,所以请同时确保 token 不外泄。

浏览器权限

扩展申请的 Chrome 权限:

权限用途
tabs列出/切换标签页、截图
scripting向页面注入快照与交互脚本、执行 Agent 提供的 JS
storage保存 gateway 地址与 token
<all_urls>在任意页面注入与交互(安装时的全域警告即来源于此)

其他边界

  • 多浏览器 / relay:按 browserId 分流,同一 ID 新连接顶替旧连接(防抢占);relay 模式下 MCP 每请求需 Authorization: Bearer,且已在线的浏览器槽位只认它自己握手用的 token——注册表内其他 token 无法越权操控(详见 Relay 的鉴权规则)。
  • 无审批流:当前版本 Agent 的操作不会向你二次确认。若任务敏感,建议敏感站点不放行(用 --allow-url),或人在旁边时才启动 gateway。
  • 最小暴露面serve 模式的 MCP 端点没有独立鉴权(依赖网络边界),不要暴露给不可信网络;公网场景请改用 relay 模式(强制 Bearer)+ 反代加 IP 白名单或 mTLS。
  • relay 是信任边界:中转服务器运营者技术上可见全部指令与页面数据,请部署在自己的 VPS 上。

一句话建议

用 Tailscale 或 wss,用固定 token,用 --allow-url 圈定站点,gateway 只在你信任的网络里开。