核心用法
Browser Skill 是基于 Puppeteer 的无头浏览器自动化工具,主要用于:
- 渲染 JavaScript 密集型网页(SPA、动态内容网站)
- 提取干净、可读的文本内容
- 访问常规 HTTP 请求无法获取的动态加载数据
基础命令:
openclaw browser read <url>
该命令会启动 Chromium 无头浏览器,导航至指定 URL,等待页面完全渲染后提取文本内容返回。
显著优点
1. 动态内容支持:相比简单的 HTTP 请求,能完整执行页面 JavaScript,获取 React、Vue 等框架渲染后的真实内容
2. 内容结构化:自动提取可读文本,过滤广告和导航等噪音
3. 官方依赖:基于 Puppeteer 官方库,依赖审计通过,无已知 CVE
4. 代码简洁:仅 41 行可执行代码,结构清晰,无混淆或恶意特征
潜在缺点与局限性
1. 安全沙箱绕过:使用 --no-sandbox 启动参数,降低了浏览器与宿主机的隔离级别
2. SSRF 风险:URL 输入缺乏验证,可能访问内网服务、元数据端点(如 AWS 169.254.169.254)或 file:// 协议
3. 性能开销:启动完整浏览器比 HTTP 请求消耗更多资源,不适合高频调用
4. 超时控制不足:缺乏明确的页面加载超时和请求大小限制
5. 错误信息泄露:原始错误消息可能暴露内部系统信息
适合人群
- 需要获取 JavaScript 渲染内容的用户(如现代新闻网站、文档站点)
- 在受控网络环境中使用的开发者
- 能够评估并承担 SSRF 风险的进阶用户
不建议使用场景:
- 处理不可信用户输入的 URL
- 多租户环境或共享基础设施
- 对延迟敏感的高频查询
常规风险
| 风险项 | 等级 | 说明 |
|--------|------|------|
| SSRF(服务器端请求伪造) | 中 | 可访问内网资源,需严格输入控制 |
| 沙箱绕过 | 中 | 恶意页面可能突破浏览器隔离 |
| 数据外泄 | 低 | 可能将本地数据编码至 URL 发出 |
| 资源耗尽 | 低 | 无超时/大小限制,可能挂起或内存溢出 |
缓解建议: 在隔离容器中使用,配合 URL 白名单(仅允许 http/https,拒绝私有 IP 和 localhost),添加 30 秒超时和响应大小限制。