无头浏览器安全必修课Moli防御SSRF与不可信网页的完整防护清单【免费下载链接】moliBest headless browser for AI agents. Lite, Fast, High-Compatibility. Built in Rust项目地址: https://gitcode.com/gh_mirrors/moli/moliMoli 是一个用 Rust 编写的开源无头浏览器headless browser专为 AI agent 抓取、解析和自动化操作网页而设计。当你的 AI agent 自主访问不可信网页时SSRF服务器端请求伪造是头号风险。本文梳理 Moli 内置的完整安全防护清单私有网络阻断、URL 协议路由、robots.txt 合规、Profile 存储隔离帮你安全地部署 agent 工作流。为什么 AI agent 的无头浏览器是安全高危区传统爬虫只访问你指定的 URL而 AI agent 会自主决定访问哪里、执行页面里的什么脚本。一旦网页或 prompt 注入攻击诱导 agent 请求http://169.254.169.254云元数据接口或http://127.0.0.1:8080本机服务浏览器内核就可能变成攻击者的内网探针——这就是无头浏览器场景下的 SSRF。Moli 的答案是把安全边界内建到浏览器内核的分层设计中而不是指望上层框架自觉。防护层一私有网络阻断一键拦截内网探测Moli 提供--block-private-networks开关启用后所有网络传输在连接前逐地址检查命中即拒绝回环地址127.0.0.0/8、::1私有网段10/8、172.16/12、192.168/16链路本地、广播、未指定、组播地址CGNAT 段100.64.0.0/10、文档保留段、IPv6 ULA 等该策略定义在 moli-curl/src/network_policy.rs有两个值得新手注意的工程细节DNS 全答案校验一个域名解析出的任何一个IP 是内网地址整个解析结果直接拒绝杜绝公网 IP 混入内网 IP的选择性绕过IPv4 映射地址检查::ffff:127.0.0.1这类伪装成 IPv6 的回环地址也会被拆开识别并拦截。此外还支持通过block_cidrs追加自定义 CIDR 黑名单例如精确屏蔽云厂商元数据地址段。防护层二URL 协议路由把 file:// 挡在 HTTP 传输之外URL 解析合法 ≠ 浏览器允许加载它。Moli 用一个独立的策略层 moli-url-policy 把这两件事分开要求每个调用方先声明自己在做什么操作导航 / Fetch / XHR / WebSocket / Service Worker操作允许的协议HTTP 网络传输libcurl仅 HTTP / HTTPS导航HTTP(S)、data:、blob:、about:blankfile:需显式授权WebSocket仅ws:/wss:关键在于即使file://被授权用于导航它也永远不会被交给 libcurl 当 HTTP 请求发出——HTTP 传输层有一道独立的最终校验函数ensure_http_network_transport_url兜底见 moli-url-policy/src/route.rs。这直接封堵了一类隐蔽攻击诱导页面发起fetch(file:///etc/passwd)试图借浏览器进程读取本地文件。防护层三robots.txt 合规让 agent 访问有章法以 CLI 方式抓取网页时Moli 支持--obey-robots标志实现逻辑在 moli/src/robots.rs只检查顶层导航页面拉起的子资源不做检查因为半加载的文档比明确拒绝是更糟糕的答案robots.txt 按origin 作用域抓取使用空 cookie jar 且用完即弃不会污染会话robots.txt 无法读取时按 RFC 9309 将整个 origin 视为禁止不可达不等于无限制宁可保守也不放行。对运营 agent 集群的团队来说这一条是对外合规的最低成本保障。防护层四Profile 隔离与存储边界AI agent 长期运行时不可信网页留下的 localStorage、IndexedDB、cookie 都是污染源。Moli 通过 moli-browser-profile 实现Profile 分区隔离按 partition id 划分独立存储空间互不串扰Profile 文件锁同一 profile 目录被并发占用时会显式失败而不是静默写坏状态相关 CLI 行为测试见 moli/tests/profile_lock_cli.rs持久化默认关闭--profile-dir、--http-cache-dir、--cookie-file均需显式开启一次性的抓取任务默认不留任何磁盘痕迹。防护层五用安全测试套件持续验证Moli 的 CORS、cookie 隔离、同源策略、沙箱 preload 等行为由专门的回归测试持续守护核心测试在 moli-core/tests/fetch/security.rs。该套件在本地临时起双 origin 服务验证跨源请求的Origin头、cookie 是否被正确携带或拒绝、CORS 预检失败时请求是否被拦截等保证不可信网页在 Moli 里的行为边界稳定可信。快速防护清单部署前逐项核对 ✅#防护措施使用方式状态1私有网络阻断--block-private-networks默认关闭对外抓取强烈建议开启2自定义 CIDR 黑名单block_cidrs配置按需如屏蔽元数据地址段3URL 协议路由内核内置默认生效无需配置4file:// 访问授权仅显式 BrowserGranted 时启用默认拒绝5robots.txt 合规--obey-robots默认关闭对外访问建议开启6Profile 存储隔离--profile-dir按任务划分默认不留持久化状态7行为回归测试内置安全测试套件随版本持续运行小结给 AI agent 配无头浏览器安全不该是事后补丁Moli 把SSRF 阻断、协议路由、robots 合规、存储隔离做成内核级的一等公民配合 README.md 中列出的资源策略、连接限制、超时等可控运维选项你可以用一张简单清单就把 agent 的浏览器行为边界锁死。【免费下载链接】moliBest headless browser for AI agents. Lite, Fast, High-Compatibility. Built in Rust项目地址: https://gitcode.com/gh_mirrors/moli/moli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考