unclecode 于 2026-09-23 发布 Crawl4AI v0.9.4(PyPI crawl4ai 0.9.4)。本版为安全优先:经协调披露关闭三条 advisory——robots.txt 盲 SSRF(GHSA-f77g-77vp-r96v)、link_preview 带响应披露的 SSRF(GHSA-wh5w-hmj3-vgg7,高)、dict 包装绕过不可信配置门导致非管理员可读环境变量(GHSA-5w5p-vcv6-mm3f,高);库侧新增进程级 egress_policy,Docker 启动时挂载 PinningProxy。性能上默认换用 lxml 原生 PruningContentFilterLXML(中等页 134→13 ms,6000 卡片页 2200→260 ms)。自托管 Docker 服务端应尽快升级。
核心要点速览 (Key Takeaways)
- ✓发版:v0.9.4 / PyPI 0.9.4;自托管 Docker:`docker pull unclecode/crawl4ai:0.9.4`
- ✓安全:三条 GHSA——robots SSRF、link_preview SSRF、env 泄漏;统一走 pinning egress proxy
- ✓性能:默认 PruningContentFilterLXML 剪枝约 10×(134→13 ms / 2200→260 ms),输出与旧过滤器字节一致
- ✓运维:`CRAWL4AI_MAX_TIMEOUT_MS` 限制不可信超时;`crawler.pool.max_pages_before_recycle` 默认 200 回收浏览器上下文
- ✓安装:docs.crawl4ai.com 安装页;`pip install crawl4ai==0.9.4`
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
核心背景与行业痛点
面向 LLM/Agent 的网页抓取框架常把「不可信 URL + 服务端浏览器池」放在同一进程:一旦 Docker API 接受外部请求,SSRF 就能打到内网、loopback 与云元数据,link preview 还会把内页 <head> 回传给调用方。Crawl4AI 0.9.3 已修过 PDF 路径,但 robots.txt 与 URL seeder 仍走独立 HTTP 客户端,绕过 egress;另有攻击者用 {"type":"dict","value":...} 把 LLMConfig 等禁类型洗成「可信」,使非管理员可读 SECRET_KEY/LLM Key。自托管团队若仍停在 0.9.3,等于把浏览器 Agent 的数据面暴露在已知高危面上。
架构亮点与底层机制
v0.9.4 引入进程级 [egress_policy.py](https://github.com/unclecode/crawl4ai/blob/main/CHANGELOG.md):Docker 启动时把既有 PinningProxy 注册进去,库内 aiohttp/httpx 在 robots 与 seeder 路径上逐跳校验并 dial 钉扎 IP,堵住 GHSA-f77g-77vp-r96v 与 GHSA-wh5w-hmj3-vgg7。不可信配置在 unwrap 后再过 UNTRUSTED_ALLOWED_TYPES,from_kwargs 携带调用方 provenance,关闭 GHSA-5w5p-vcv6-mm3f。剪枝侧默认 PruningContentFilterLXML:自底向上一次算齐节点指标,复杂度从超线性降到 O(N),输出与旧 PruningContentFilter 字节一致。
权威 Benchmark 与实测跑分对比
发行说明给出同一套剪枝负载的墙钟对比(非第三方榜单):中等页面 134 → 13 ms,约 6000 卡片页面 2200 → 260 ms,数量级约 10×。安全项以 GHSA 关闭与回归测试为准(test_egress_policy / test_config_provenance / test_content_filter_prune_lxml),无公开跨框架吞吐对比;升级验收应复现「不可信 body 触发 robots/seeder 不得触达内网」与剪枝输出 diff 为空。
开发者实战落地与开箱指南
pip install crawl4ai==0.9.4 或 docker pull unclecode/crawl4ai:0.9.4,安装步骤见 官方文档。自托管务必升级后再暴露 API;可设 CRAWL4AI_MAX_TIMEOUT_MS 限制不可信 page_timeout 等,并按负载调 crawler.pool.max_pages_before_recycle(默认 200)。包页:PyPI 0.9.4;变更全文见 CHANGELOG。纯库调用不设 egress 时行为与升级前一致,仅 Docker 服务端挂载代理。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察