wBlock:轻量开源的 Safari 广告拦截器,终结规则限制烦恼

wBlock 是一款专为 Safari 浏览器设计的开源内容拦截工具,支持 iOS、iPadOS 和 macOS。它利用 Safari 原生的声明式内容拦截 API,在不牺牲性能的前提下,实现了对广告、跟踪器、弹窗等干扰内容的高效过滤。

最大亮点:支持多达 75 万条过滤规则——远超 Safari 单个扩展 15 万条的硬性限制。

wBlock:轻量开源的 Safari 广告拦截器,终结规则限制烦恼插图

✅ 为什么选择 wBlock?

  • 规则容量大:通过同时启用 5 个 Safari 内容拦截扩展(每个最多 15 万条规则),总规则数可达 750,000 条,覆盖全球主流过滤列表,包括适用于中文用户的规则。
  • 资源占用低:得益于 Safari 原生 API,空闲时内存占用仅约 40 MB,对系统性能影响极小。
  • 免费开源:代码完全公开,无隐藏行为,用户可审计、可定制。
wBlock:轻量开源的 Safari 广告拦截器,终结规则限制烦恼插图1

🔧 核心技术特性

高效存储与加载

  • 使用 Protocol Buffers 序列化规则数据,配合 LZ4 压缩,显著减小存储体积。
  • 采用流式加载非主线程 I/O,避免启动或更新时卡顿。
  • 过滤器更新使用 HTTP 条件请求If-Modified-Since / ETag),节省流量与服务器压力。

灵活的内容控制

  • 网络请求拦截:阻止广告、跟踪脚本、恶意域名等。
  • Cookie 与本地存储过滤:通过规则限制第三方存储行为。
  • CSS 注入与元素隐藏:美化页面,移除顽固横幅或按钮。
  • 脚本拦截:阻止不需要的 JavaScript 执行,提升安全性和加载速度。
  • 弹窗与重定向阻止:基于 Safari 拦截模式,有效抑制跳转骚扰。

高级功能(macOS 专属)

  • 元素清除器:手动选择页面元素,自动生成持久 CSS 选择器,实现精准移除。
  • 用户脚本引擎:支持 Greasemonkey API(如 GM_getValueGM_xmlhttpRequest),兼容常见油猴脚本。

🛠 配置与管理

  • 自定义过滤器:支持通过 URL 导入 AdGuard 语法的规则列表。
  • 智能分组:按类别组织过滤器,可单独开关,自动分配规则到合适扩展。
  • 规则验证:自动检测并禁用超出 15 万条限制的列表,避免 Safari 拒绝加载。
  • 区域化支持:预设多语言过滤列表,包括中文场景优化。
  • 按站点控制:通过 Safari 原生接口,实现“在某网站禁用拦截器”等精细控制。
  • 白名单管理:为信任域名设置例外,状态持久保存。
  • 后台更新:支持 1 小时至 7 天的自动刷新,可选推送通知提醒更新完成。

评论