Skip to main content

--- title: “04-Computer Use 安全操作指南” description: “理解屏幕与浏览器操作模型、启用条件、权限确认和网站审批,安全处理截图、剪贴板、下载、上传与测试账号,并掌握停止、回滚、审计、练习和故障排查方法。“

本页目标

Computer Use 让 Codex 能观察屏幕并操作图形界面。 它适合处理命令行和结构化接口无法完整验证的任务。 例如:
  • 复现只在桌面窗口中出现的界面问题。
  • 验证本地 Web 应用的真实渲染和交互。
  • 操作没有 API 或插件的桌面应用。
  • 在隔离的测试网站中完成一条端到端流程。
  • 跨越浏览器和桌面应用复现一个用户工作流。 它不是普通的网页抓取器,也不是无限权限的远程桌面。 它看到什么、能够操作什么,取决于运行模式、系统权限、应用审批、网站审批和当前登录状态。 本页重点是安全的操作方法,而不是某个版本的按钮位置。 菜单名、快捷键、插件名称和可用地区可能变化。 具体入口以本机 Codex 界面、codex --help 和官方文档为准。 参考资料:
  • 参考/codex/17-computer-use.md
  • 参考/codex/16-security.md

先记住四条原则

  1. 能用专用插件或 API 完成的任务,不优先使用 Computer Use。
  2. 能用内置浏览器完成的本地网页验证,不优先接管真实 Chrome。
  3. 能在测试账号和隔离环境完成的任务,不使用生产账号和真实数据。
  4. 每一次批准都视为一次真实授权,批准前先看目标、范围和后果。 Computer Use 的风险来自“看见”和“动手”同时发生。 屏幕上出现的内容可能被读取。 前台应用可能被点击、输入、提交或关闭。 浏览器中的登录态可能让一次点击获得超出任务所需的权限。 网页、文件、邮件和对话中的文字都可能包含提示注入。 它们是待分析的数据,不是自动获得的上级指令。

一、三种界面操作路径

Codex 通常有三条接触界面的路径:内置浏览器、Chrome 扩展和电脑操控。 它们的信任边界不同,不能混为一个功能。

1. 内置浏览器

内置浏览器运行在 Codex 提供的浏览器视图中。 它适合:
  • localhost 或局域网测试地址。
  • 不需要登录的公开页面。
  • 本地静态页面和开发服务器。
  • 只读的页面检查、截图和交互验证。 它通常不共享日常 Chrome 的 Cookie、扩展、历史记录和已打开标签页。 因此它更适合第一轮验证。 不要假定它能完成登录后的流程。 不要把测试凭据输入到不明确的页面。

2. Chrome 扩展

Chrome 扩展连接到真实 Chrome 的标签页或标签页分组。 它适合必须使用现有登录态的站点,例如:
  • 测试环境的管理后台。
  • 已登录的内部工具。
  • 需要浏览器 Cookie 才能访问的 SaaS 测试租户。 连接后,扩展可能接触当前 Chrome 配置文件能访问的站点。 这意味着登录态本身就是高价值权限。 应使用专门的浏览器配置文件、测试账号和最小权限。 不要在含有网银、密码管理器、生产后台或个人邮箱标签页的配置文件中启用任务。

3. 电脑操控

电脑操控面对整个当前桌面。 它可以观察目标窗口,并模拟鼠标、键盘和常见的界面导航动作。 它适合:
  • 原生桌面应用。
  • 模拟器或虚拟机中的界面。
  • 只有视觉状态才能复现的问题。
  • 横跨多个没有统一接口的应用流程。 它是三条路径中范围最大、风险最高的一条。 Windows 上通常会接管当前前台,不能把它当成后台任务运行。 macOS 需要系统级的屏幕录制和辅助功能权限。 Linux、地区限制和具体客户端支持情况以当前官方说明为准。

路径选择表

  1. 任务是否必须看到真实像素和窗口状态?
  2. 任务是否必须使用已有浏览器登录态?
  3. 是否有 API、MCP 或专用插件可以替代? 只要第三个问题答案为“有”,优先使用结构化接口。

二、操作模型:它到底怎么工作

理解模型有助于判断风险。 一次典型的 Computer Use 回合可以拆成以下阶段:
  1. 接收任务说明和当前上下文。
  2. 获取目标窗口或浏览器视图。
  3. 观察屏幕截图、页面状态或可见控件。
  4. 根据观察结果选择点击、输入、滚动或导航动作。
  5. 执行动作并等待界面更新。
  6. 再次观察结果,判断是否达到下一步条件。
  7. 在需要时请求网站、应用或系统级审批。
  8. 输出结果、截图、错误或需要人工接手的位置。 这是一个“观察、行动、再观察”的闭环。 它不是一次生成一串可靠坐标后就完全不看结果。 界面变化、弹窗、网络延迟和焦点丢失都可能改变下一步动作。 因此任务描述必须给出可验证的状态,而不能只写“帮我点完”。 推荐这样描述目标:

屏幕观察不是“只看当前按钮”

截图可能包含屏幕上的其他内容:
  • 通知内容。
  • 地址栏中的内部 URL。
  • 其他窗口标题。
  • 聊天消息和邮件摘要。
  • 文件名和本地目录。
  • 账号名称、头像和组织名称。
  • 剪贴板中刚刚复制的文字。 开始任务前应清理无关窗口和通知。 不要让密码管理器、支付页面、生产控制台和私人聊天停留在可见区域。

界面动作具有真实副作用

点击“保存”可能修改数据。 点击“发送”可能把内容发给真实收件人。 点击“删除”可能触发不可逆操作。 点击“确认购买”可能产生费用。 拖动滑块可能改变线上配置。 关闭窗口可能丢失未保存内容。 所以“只是点一下”不是安全分类。 应按动作产生的后果分类,而不是按动作的形式分类。

三、启用前的条件检查

设备和地区

先确认当前客户端和账号支持目标能力。 某些 Computer Use 能力只在特定桌面平台和地区开放。 不支持时,不要通过修改系统地区、安装来源不明的扩展或绕过安全策略强行启用。 这类绕过会增加供应链和账号风险,也无法保证功能稳定。

项目和工作区

操作前确认:
Windows PowerShell 可使用:
明确当前目录是否为测试项目。 不要在包含生产配置、真实用户导出、支付数据或未加密备份的目录中练习。

账号和数据

准备专门的测试账号:
  • 不绑定真实支付方式。
  • 不拥有管理员权限。
  • 不包含真实客户数据。
  • 使用最小可用角色。
  • 有明确的有效期和注销流程。
  • 有可重置的测试数据。 如果任务需要上传文件,准备无敏感信息的样例文件。 如果任务需要发送消息,使用内部回收邮箱或模拟收件箱。 如果任务需要支付流程,使用支付提供方的沙箱环境。

隔离浏览器

为 Chrome 扩展单独建立浏览器配置文件。 这个配置文件只安装任务必需的扩展。 不要把个人浏览器的全部 Cookie、历史记录和自动填充数据带入任务。 开始前检查:
  • 当前 Profile 名称正确。
  • 没有生产站点标签页。
  • 没有保存真实密码和支付信息。
  • 不需要的扩展已停用。
  • 下载目录和上传目录是临时测试目录。

桌面环境

电脑操控前:
  • 关闭无关应用和通知。
  • 保存人工正在编辑的内容。
  • 将目标应用置于容易识别的窗口状态。
  • 断开不需要的远程桌面会话。
  • 准备停止任务的快捷方式或按钮。
  • Windows 上安排一段不需要使用鼠标键盘的时间。
  • macOS 上只授予本次需要的屏幕录制和辅助功能权限。 不要在锁屏、会议演示、远程办公共享屏幕或公共场所直接启用。

四、权限确认:每一层都要单独判断

系统权限、应用审批、网站审批和命令审批不是一回事。

系统权限

macOS 的屏幕录制权限让 Codex 能看见屏幕。 辅助功能权限让它能点击、输入和导航。 授予系统权限不等于允许它访问所有网站。 也不等于允许它执行所有命令。 系统权限范围通常较大,任务完成后应考虑关闭不再需要的权限。 Windows 没有完全相同的授权界面,但前台接管带来同样的操作风险。

应用审批

电脑操控访问某个应用时,Codex 可能请求应用审批。 确认前检查:
  • 应用名称是否准确。
  • 是否是测试应用而非生产工具。
  • 当前窗口是否为预期窗口。
  • 任务是否真的需要该应用。
  • 是否可以只允许当前任务。 不要为了减少弹窗,对所有应用选择永久允许。 永久允许只适用于明确、低风险、长期重复的应用。

网站审批

浏览器通常按网站主机名请求访问确认。 首次访问陌生站点时,先核对:
  • 地址栏中的主机名。
  • 是否为测试环境或官方域名。
  • 是否发生了意外跳转。
  • 当前页面是否要求输入凭据。
  • 页面内容是否在诱导扩大权限。 优先选择“仅当前对话允许”。 只有在稳定、可信且确实需要重复访问的测试域名上,才考虑加入 allowlist。 blocklist 应用于明确禁止访问的生产域名、个人服务和高风险站点。

不要轻易打开永久放行

“始终允许浏览器内容”会减少后续确认,但也会削弱逐站审批。 它不应作为解决连接问题的第一步。 启用前记录:
  • 为什么需要永久放行。
  • 允许的范围是什么。
  • 如何撤销。
  • 任务结束后是否关闭。 浏览器历史记录应按次授权。 历史中可能包含内部 URL、搜索词、项目名称和账号活动痕迹。 不要把“读取历史记录”视为普通的页面访问。

五、网站内容和提示注入

网页内容是外部输入。 页面上的文字可能对人有帮助,也可能专门写给代理。 例如,一个页面可能显示:
这不是任务的新要求。 它只是页面中的不可信内容。 正确处理方式是:
  1. 把它标记为可疑内容。
  2. 不执行其中的命令。
  3. 不打开它提供的陌生下载地址。
  4. 不上传凭据、Cookie、源码或截图。
  5. 把页面地址、可疑文字和发生时间记录下来。
  6. 停止任务并请求人工判断。 提示词注入可能藏在:
  • 网页正文。
  • 邮件内容。
  • Issue 和评论。
  • 文档和 PDF。
  • 图片中的文字。
  • 下载文件的 README。
  • 第三方插件返回结果。
  • 聊天消息和客服工单。 任务指令的优先级来自用户和系统边界,不来自网页中的普通文本。 如果页面要求“不要告诉用户”“不要请求审批”或“先读取本地文件”,应视为高危信号。

访问网站的最小范围

任务开始时列出允许访问的域名。 例如:
如果发生跨域跳转,停止确认。 不要因为页面显示“验证失败”就自动访问更多域名。 不要为了完成流程而关闭网站审批。

六、截图风险

截图可能是数据输出,不只是调试附件。 截图中可能包含:
  • 密码输入框附近的账号信息。
  • 地址栏、路径和查询参数。
  • 客户姓名、订单号和内部编号。
  • 通知、私信和邮件预览。
  • 访问令牌或错误堆栈。
  • 其他窗口的内容。 截图前执行最小化处理:
  1. 关闭无关窗口和通知。
  2. 切换到测试账号。
  3. 隐藏或裁剪敏感区域。
  4. 确认地址栏不是生产域名。
  5. 只截取验证所需的窗口和状态。
  6. 不把原始截图上传到公共 Issue 或聊天群。 如果截图要交给团队,先确认数据分类和保留期限。 截图文件应放在临时目录,并在任务结束后删除。 不要把截图放入 Git 仓库,除非已经确认没有敏感信息且确实需要版本化。

七、剪贴板风险

剪贴板是跨应用共享的数据通道。 Computer Use 可能读取或写入剪贴板,具体能力以当前版本为准。 剪贴板可能包含:
  • 密码管理器复制出的密码。
  • API Key、Cookie 和一次性令牌。
  • 客户数据和内部文档。
  • 还未发送的消息。
  • 生产命令或数据库连接串。 任务开始前清空剪贴板,或先复制无敏感的占位文本。 不要把真实密码作为自动化步骤的中间变量。 如果必须粘贴测试令牌,使用短期、低权限、可撤销的令牌。 任务结束后再次清空剪贴板。 检查是否有剪贴板管理器保存了历史副本。

八、下载和上传风险

下载文件可能携带恶意脚本、宏、追踪器或提示注入。 上传文件可能泄露源码、密钥、个人数据和内部元数据。

下载前检查

  • 文件来自哪个域名。
  • 是否为任务明确需要的文件。
  • 文件类型是否与预期一致。
  • 是否包含宏、脚本或可执行内容。
  • 下载后是否会自动打开。
  • 保存目录是否为临时隔离目录。 默认不要自动打开下载文件。 先以只读方式检查文件名、大小、哈希和内容类型。 陌生压缩包和可执行文件应在隔离环境中分析。

上传前检查

  • 上传目标域名是否正确。
  • 文件是否只包含测试数据。
  • 是否存在隐藏文件、元数据或嵌入凭据。
  • 是否会触发公开分享。
  • 是否会被永久保留。
  • 上传是否会发送通知或产生费用。 不要用“先上传再看看”替代审批。 上传是数据外发,应按联网和敏感数据操作处理。

九、测试账号和测试数据设计

安全练习的质量取决于测试数据,而不是只取决于工具设置。 建议建立一套可重置的测试租户:
  • 使用虚构姓名和地址。
  • 使用明显标记的测试订单。
  • 使用无效或沙箱支付方式。
  • 使用最小角色权限。
  • 设置自动过期日期。
  • 为每次练习生成独立会话。
  • 保留初始化脚本或快照。 测试账号不应复用生产密码。 即使是测试账号,也不要在公开页面粘贴长期令牌。 给测试账号设置访问日志和异常登录提醒。 练习完成后注销所有会话,撤销临时令牌,清空浏览器站点数据。

十、停止、接管和回滚

什么时候必须立即停止

出现下列情况时停止任务:
  • 域名与预期不一致。
  • 页面要求读取本地密钥。
  • 页面要求关闭安全提示或审批。
  • 目标窗口突然变成生产应用。
  • 任务出现删除、付款、发送或发布动作。
  • 鼠标焦点丢失,无法确认当前窗口。
  • 页面持续重定向或出现异常下载。
  • Codex 的下一步与任务目标不一致。
  • 看到无法解释的命令、上传或跨域请求。 停止后先保留现场,不要继续点击以“看看会怎样”。

如何接管

根据当前客户端提供的控制方式暂停或取消任务。 Windows 上可以先移动鼠标、切换到安全窗口或使用 Codex 的停止控制。 如果任务没有响应,优先关闭目标测试应用或断开测试网络。 不要在任务仍运行时输入个人密码或打开生产系统。 对于无法确认的状态,人工接管后重新检查:
  • 当前应用。
  • 当前 URL。
  • 当前账号。
  • 已完成的动作。
  • 是否有待确认弹窗。
  • 是否发生了保存或提交。

回滚策略

回滚必须在任务开始前定义。 代码变更可以使用版本控制和补丁恢复。 文件变更前先保存状态:
数据库操作使用测试库快照、事务或专用回退脚本。 后台配置使用导出备份和已验证的旧版本。 测试订单、消息和账号状态使用平台提供的撤销或重置功能。 无法撤销的外部动作,不应交给无人值守的 Computer Use。 不要用强制推送、无条件删除或覆盖备份来“快速回滚”。

十一、审计记录

每次高风险的界面任务都应留下最小审计记录。 建议记录:
  • 日期和时间。
  • 操作者和 Codex 会话标识。
  • 客户端版本。
  • 操作模式:内置浏览器、Chrome 扩展或电脑操控。
  • 使用的应用、浏览器 Profile 和测试账号。
  • 允许访问的域名。
  • 授予的系统权限和审批范围。
  • 任务目标和明确禁止事项。
  • 关键动作及其结果。
  • 截图或日志的存储位置。
  • 停止、失败和人工接管时间。
  • 回滚动作和最终状态。 不要把密码、完整 Cookie、访问令牌或原始个人数据写入审计日志。 可以记录脱敏后的账号标识、域名、资源编号和哈希。 日志应有访问控制和保留期限。 一个简短模板如下:

十二、安全练习流程

下面的流程用于第一次练习。 它只验证本地页面的只读观察和截图。

第一步:建立练习目录

Windows PowerShell:
目录中只放无敏感的测试文件。 不要从生产项目目录启动静态服务器。

第二步:启动本地页面

Windows 如果没有 python3,尝试:
预期地址是 http://localhost:3000。 先用普通浏览器手动确认页面能打开。

第三步:启用内置浏览器

在 Codex 中启用 Browser 相关能力。 入口名称以当前版本为准。 不要在这一步连接个人 Chrome Profile。 打开内置浏览器并导航到本地地址。

第四步:发送只读任务

第一次访问时可能出现网站确认。 只允许当前对话访问 localhost。

第五步:人工验收

检查:
  • 地址是否仍为 localhost。
  • 页面内容是否来自练习目录。
  • 截图是否不含敏感信息。
  • 是否没有访问其他域名。
  • 是否没有产生下载或上传。
  • Codex 的总结是否与页面实际内容一致。

第六步:停止和清理

停止静态服务器。 删除临时截图和下载文件。 清空剪贴板。 关闭内置浏览器页面。 记录本次练习的模式、结果和异常。 完成这次只读练习后,再考虑测试账号和 Chrome 扩展。

十三、分阶段升级练习

不要一次启用全部能力。 建议按四个阶段递进:

阶段 A:本地只读

目标是打开 localhost,读取页面并截图。 禁止登录、写文件、下载和上传。 验收是地址、截图和访问范围都正确。

阶段 B:本地交互

在本地页面中点击导航、切换选项卡和填写虚构内容。 表单只保存到内存或测试环境。 禁止真实发送和外部跳转。

阶段 C:测试站点登录

使用独立 Chrome Profile 和测试账号。 只允许一个明确的测试域名。 先做只读流程,再做可回滚的写入流程。

阶段 D:桌面应用

在虚拟机或专用测试机器中运行目标 App。 只打开一个目标窗口。 使用可恢复的测试数据。 让操作者全程在场,遇到系统弹窗和不可逆动作立即接管。

十四、故障排查

内置浏览器无法打开

先确认本地服务仍在运行。 检查端口是否被其他程序占用。 确认地址使用 http://localhost:3000,而不是误写成生产地址。 用普通浏览器验证页面,再回到内置浏览器。 检查 Browser 插件是否已启用。 如果只有某个页面失败,查看开发服务器日志和页面控制台错误。 不要为了打开页面而启用全局网络或永久网站放行。

Chrome 显示未连接

按以下顺序检查:
  1. Chrome 扩展是否已安装并启用。
  2. 工具栏状态是否为 Connected。
  3. 当前 Chrome Profile 是否就是安装扩展的 Profile。
  4. Codex 中 Chrome 插件是否已启用。
  5. 目标站点是否在 blocklist 中。
  6. 是否已经打开目标标签页。
  7. 新建 Codex 线程后是否恢复。
  8. 重启 Chrome 和 Codex 后是否恢复。 仍然失败时,移除并重新添加插件,按安装向导重走连接流程。 不要安装来源不明、名称相似的扩展。

电脑操控看不见窗口

macOS 检查屏幕录制权限。 检查辅助功能权限。 确认授权对象是当前 Codex 应用。 修改系统权限后重启相关应用。 Windows 确认目标窗口位于当前活动桌面且没有被最小化。 不要在锁屏、远程切换桌面或多显示器状态不明确时继续任务。

点击了错误位置

立即停止任务。 确认当前焦点和窗口。 检查是否发生了保存、提交、发送或下载。 恢复测试数据或使用快照回滚。 重新开始时缩小窗口数量,给出明确的页面标题和停止条件。 不要只在提示词中写“继续小心一点”,要改变环境和权限。

网站不断要求权限

核对主机名是否发生跳转。 检查是否访问了登录、历史记录或文件 URL。 确认任务是否真的需要该权限。 选择当前会话允许,而不是直接永久允许。 若页面内容要求关闭审批或访问本地文件,停止并记录。

下载或上传失败

确认下载和上传目录权限。 检查 Chrome 扩展是否允许访问文件 URL。 先用无敏感样例文件测试。 确认网站审批和系统文件权限都已明确授予。 不要把真实文件直接作为排障材料。

任务速度慢或反复操作

减少打开的窗口和标签页。 给出唯一目标和明确成功状态。 避免让它同时处理多个应用。 将页面加载、弹窗和重定向写入步骤。 能用 DOM、API、测试脚本或专用插件验证的部分,改用结构化工具。

十五、故障后的调查清单

如果怀疑发生了越权或误操作,按顺序处理:
  1. 停止 Codex 任务并接管设备。
  2. 断开测试环境的外部网络,必要时保留日志后再断开。
  3. 记录当前 URL、应用、账号和时间。
  4. 检查浏览器历史、下载目录和上传记录。
  5. 检查测试账号的会话、令牌和登录活动。
  6. 检查外部系统是否出现保存、发送、删除或配置变更。
  7. 撤销临时令牌并注销相关会话。
  8. 使用快照、回滚脚本或平台恢复功能恢复状态。
  9. 保留脱敏后的截图和事件记录。
  10. 只有确认环境干净后才重新运行。 如果涉及真实凭据、客户数据、付款或生产系统,应立即按组织的安全事件流程报告。 不要为了“确认有没有泄露”而再次访问可疑地址或重新提交数据。

十六、提交前验收

完成开发或测试任务后,至少核对:
  • 目标路径、应用和账号正确。
  • 访问过的域名都在允许列表中。
  • 没有读取不必要的历史、剪贴板或本地文件。
  • 没有上传源码、凭据或真实个人数据。
  • 没有意外下载并执行文件。
  • 关键按钮的副作用已经由人工确认。
  • 截图和日志已脱敏。
  • 代码 diff 只包含预期变更。
  • 测试数据已恢复或保留明确的后续动作。
  • 临时权限、令牌、会话和浏览器 Profile 已清理。 代码项目可执行:
不要因为 Computer Use 的审查面板没有显示变更,就认为桌面应用没有保存动作。 有些外部应用的状态不会出现在代码 diff 中。

结语

Computer Use 的核心能力是“观察真实界面并执行真实动作”。 安全使用它需要同时管理五个范围:
  • 它能看到的屏幕范围。
  • 它能操作的应用范围。
  • 它能访问的网站范围。
  • 它能接触的数据范围。
  • 一次授权持续的时间范围。 优先从内置浏览器的本地只读练习开始。 随后才逐步加入测试账号、Chrome 扩展和隔离桌面。 任何涉及登录、上传、下载、付款、删除、发送、生产配置或系统权限的动作,都应让操作者在场。 发现域名、窗口、账号或动作与任务不一致时,立即停止。 把截图、剪贴板、下载和上传都当成数据边界处理。 把每次审批、接管、回滚和清理记录下来。 这样才能让 Computer Use 成为可验证、可中断、可恢复的测试工具,而不是不可追踪的远程操作入口。