Skip to content

feat(browser): Full CDP 调试通道与高度敏感权限隔离 - #77

Merged
Qiyuanqiii merged 2 commits into
mainfrom
codex/issue-42-full-cdp-debug-channel
Aug 16, 2026
Merged

Qiyuanqiii merged 2 commits into
mainfrom
codex/issue-42-full-cdp-debug-channel

Conversation

@Qiyuanqiii

Copy link
Copy Markdown
Member

背景

issue #42(父任务 #33):Prayu 已区分受限 CDP 与完整 CDP 的权限概念,但 Full CDP 仍没有真实、独立的产品执行通道。需要在不污染 Safe Web 的前提下,为受信任调试场景实现显式、限时、高度敏感的 CDP 能力。

本次改动

  • Full CDP 授权(browser_full_cdp_authorization.v1):AuthorizeFullCDP 仅在 Run 使用 full_debug 权限 + 操作者确认 + 进程 FullDebugEnabled + RestrictedCDPEnabled + 逐次确认 同时满足时签发;TTL 5 分钟,绑定 Run/Workspace/可执行身份/权限 revision/scope;InstructionAuthorized 恒为 false(网页指令永不提升权限)。
  • 启动协议(browser_full_cdp_start_authorization.v1):AuthorizeFullCDPStart 独立于 Safe Web 启动,要求 maximum-access debug 权限,且不携带 Safe Web 的 WFP 隔离/loopback 导航标志。
  • 调试会话:FullCDPSession 复用受限 CDP WebSocket 客户端,但仅在 fullCDP=true 时接纳额外高敏方法集(Network.getCookies/Network.getAllCookies/Storage.getCookies/Fetch.fulfillRequest/Runtime.*/Log.enable);RequestCapture/CookieAccess 返回元数据 only(无 header/cookie 值/body),脱敏由类型构造保证。
  • 编排:FullCDPService.Open(app 层)串起 构建 ProfileCTFLab 会话 → AuthorizeFullCDP → OpenFullCDPSession。
  • ADR 0106 记录 Full CDP 调试通道设计。

测试覆盖

  • browserruntime:AuthorizeFullCDP(正常 + 4 个拒绝路径:Safe Web 会话/restricted 权限/未确认/full-debug 门关/restricted-cdp 门关)+ 5 个篡改拒收;AuthorizeFullCDPStart(FullDebug 通过 / restricted 拒绝)。
  • application:FullCDPService.Open 未确认 fail-closed(自包含 fixture,不依赖 feat(browser): 受限 Safe Web 操作者入口与 readiness 收据 #41)。
  • 复用 browserLaunchFixture + production_runtime_test 的既有事实链,不引入真实浏览器依赖。

验证结果

  • go build ./...、go vet ./... 通过。
  • go test ./internal/browserruntime、go test ./internal/application 全量通过。

安全边界与非目标

  • Full CDP 与 Safe Web 两条权限链互不串联:Safe Web 证据/受限权限不能授权 Full CDP,maximum-access debug 权限不能进入受限运行时。
  • capability 有 TTL、Run/Workspace/可执行身份/进程绑定,重启即失效。
  • 会话结果元数据 only,绝不含 secret/cookie/header/body/页面内容。
  • 不默认关闭浏览器安全机制(RelaxOriginPolicy/AllowInsecureContent/IgnoreCertificateErrors 恒拒绝);不连接已有浏览器;不用于后台无人值守公网攻击。
  • UI 的「高度敏感权限 + 独立确认」已在既有 run-permission-settings.tsx(full_debug 的 dangerous 标签 + 独立 PermissionConfirmation);调试操作走 CDP 传输而非 HTTP/UI,与 Safe Web 模式一致。

Closes #42

@Qiyuanqiii
Qiyuanqiii merged commit 3ceeebf into main Aug 16, 2026
5 checks passed
@Qiyuanqiii
Qiyuanqiii deleted the codex/issue-42-full-cdp-debug-channel branch August 16, 2026 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(browser): Full CDP 调试通道与高度敏感权限隔离

1 participant