编程 把真实登录交给无头 AI agent:Lightpanda Session Bridge

2026-09-08 06:11:16

把真实登录交给无头 AI agent:Lightpanda Session Bridge

自主 AI agent 要操作现代 Web 仪表盘时,把密码或会话 token 塞进 prompt 是安全灾难。作者构建了 Lightpanda Session Bridge——一个开源的 MV3 Chrome 扩展 + 加固的 loopback relay,通过 CDP 把你活的浏览器会话安全复制进本地 Lightpanda 无头运行时。零凭据输入、零 secret 暴露给 LLM。

痛点

agent 要查 AWS 账单控制台、SaaS 仪表盘私有日志、内部门户时,演示就崩了。现代应用不在 basic auth 后面——它们在 Google OAuth、SSO 联邦、硬件 passkey、生物识别 2FA 后面。无头浏览器无法点安全密钥、答手机验证器、对 FaceID 眨眼。 于是大家妥协:把密码硬编码进 prompt 或 .env(泄漏进 LLM 上下文日志、聊天历史、trace);把会话 cookie 复制粘贴。

三件套架构(原文主线)

  1. Chrome 扩展(MV3):只申请最小作用域权限(activeTab、cookies、storage)。点击时捕获当前域 cookie、归一化、准备传输信封。首次启动自动配对握手(/v1/bootstrap),共享加密 token 存本地隔离存储,无需手动复制粘贴。

  2. 加固 Loopback Relay(relay/server.py):只听 127.0.0.1:8765,是安全网关——强制 origin 匹配;把浏览器 cookie 结构翻译成 Lightpanda 兼容的 CDP 消息(含 laxLax 大小写转换,避开 -31998 InvalidEnumTag 崩溃);按 RFC 6265bis 归一化 __Host-/__Secure- 前缀;经 CDP WebSocket 转发给无头引擎。

  3. Lightpanda 无头引擎:Zig + V8 写的超快开源无头浏览器,专为 AI 自动化打造;跑在 WSL2 里与 Windows 宿主隔离。

SSRF 与本地泄漏防线

把本地 HTTP relay 当可信边界是本地提权发生的方式。既然 relay 收 cookie,作者从一开始就当对抗性 SSRF 表面设计:

  • 零日志:cookie 名和值绝不打印到 stdout、不落盘、不进历史;
  • 仅 loopback:硬编码绑定 127.0.0.1,不暴露任何可路由网卡;
  • 严格 IdP 黑名单:自动拒绝发给身份根(accounts.google.com、login.microsoftonline.com、appleid.apple.com、github.com、auth0.com)的传输;
  • SSRF IP/DNS 校验:目标域必须解析到合法公网 IPv4/IPv6;localhost 别名、127.0.0.0/8 等一律拒绝。

实践建议

  • agent 要登录态时用"会话桥接"而非凭据注入:无头引擎里复制活会话,LLM 永远碰不到 secret;
  • 本地 relay 一律按 SSRF 表面设计:loopback only、IdP 黑名单、IP/DNS 校验、零日志;
  • cookie 结构跨引擎有差异(sameSite 大小写、前缀规则),传输层要归一化而非原样转发。

来源:Handing Real Logins to Headless AI Agents: Building the Lightpanda Session Bridge - DEV Community

复制全文 生成海报 AI 安全 开源 自动化

推荐文章

程序员茄子在线接单