误伤排查:ABP 拦截过度导致功能失效怎么办
误伤的三大表现
- 登录按钮点不了:Facebook / Google OAuth 登录按钮失效;
- 视频不播放:YouTube 或 B 站视频加载一半卡住;
- 表单提交不了:电商 checkout、用户注册表单提交失败。
分步排查法
第一步:确认是 ABP 导致的
- 在 ABP 设置面板里对当前网站临时关闭过滤(白名单开关);
- 刷新页面;
- 功能恢复了 → 确认是 ABP。没恢复 → 不是 ABP 的问题,换浏览器或检查其他扩展。
第二步:确定是哪类规则导致的
把订阅列表关掉,只保留 ABP 内置引擎:
- ABP 设置面板 → 过滤规则列表 → 取消勾选所有订阅;
- 刷新页面测试功能;
- 如果功能恢复 → 问题在某个订阅列表里;
- 如果功能还是坏 → 问题在你的自定义规则里。
第三步:进一步缩小范围
情况 A:订阅列表问题
- 重新勾选订阅,但先只勾 EasyList;
- 测试;
- EasyPrivacy 可能导致 OAuth 登录按钮失效;
- Fanboy Social 可能导致社交登录按钮失效;
- Acceptable Ads 可能放行后某些功能恢复(虽然这个场景少)。
情况 B:自定义规则问题
- 把自定义规则一条条注释掉(前面加
!); - 每注释一条刷新页面测试;
- 找到哪条注释掉就恢复 → 定位到了问题规则;
- 修正规则或写成例外规则。
第四步:定位到具体的拦截请求
用 Chrome 开发者工具的 Network 面板:
- 打开 Network 面板;
- 刷新页面,复现误伤;
- 找红色标记为 "Blocked" 的请求;
- 看它的请求类型(script / fetch / xhr)和域名;
- 确认这个请求是不是正常功能所必需的(比如登录流程、视频加载请求)。
常见误伤源
| 误伤现象 | 大概率的原因 | 修复 | ||
|---|---|---|---|---|
| Facebook / Google 登录按钮失效 | EasyPrivacy 或 Fanboy 拦了 OAuth SDK 脚本 | 写例外规则 `@@ | facebook.com^$script` | |
| 视频卡住不加载 | EasyList 里的视频分片规则误伤了非广告分片 | 去 EasyList 论坛反馈,或自己写例外 | ||
| 电商搜索不工作 | 拦了搜索 API 的 fetch 请求 | 写例外 `@@ | 该电商 API 域名^$script,xhr` | |
| 站内推荐不出内容 | 拦了推荐统计像素 | 关闭 EasyPrivacy 对该站的跟踪拦截 |
反馈渠道
如果确认是订阅列表的问题:
- EasyList 误伤 → 去 EasyList 论坛提交;
- 自定义规则误伤 → 自己改。
不要找 ABP 官方——EasyList 不是 Eyeo 维护的。