ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Bypass Paywalls Clean权限机制详解:为什么默认不申请<all_urls>,以及opt-in自定义站点的正确打开方式

Bypass Paywalls Clean权限机制详解:为什么默认不申请<all_urls>,以及opt-in自定义站点的正确打开方式
  • 前端

【免费下载链接】bypass-paywalls-chrome-clean-magnolia1234

Bypass Paywalls Clean for Chrome (no Google Analytics, lot of updates/bug-fixes and custom sites)

项目地址:https://gitcode.com/gh_mirrors/bypa/bypass-paywalls-chrome-clean-magnolia1234
点击查看免费下载

Bypass Paywalls Clean是一款用于绕过新闻网站付费墙(paywall)的 Chrome 扩展,主打无 Google Analytics、更新频繁且支持自定义站点。但不少用户在安装时会发现:它默认不申请<all_urls>(所有网址)权限,而是通过opt-in(用户主动选择加入)的方式来解锁自定义站点功能。这篇文章带你读懂它背后的权限设计思路,并给出开启自定义站点权限的正确步骤。

为什么 Bypass Paywalls Clean 默认不申请<all_urls>?

在 Chrome 扩展的 manifest.json 中,可以看到两个关键区域:

  • permissions:安装时自动生效的权限。Bypass Paywalls Clean 把数百个受支持的新闻站点域名(如nytimes.com、washingtonpost.com、bloomberg.com)逐一写死在这里,并附带cookies、storage、webRequest等基础能力;
  • optional_permissions:可选项,只有用户明确同意后才生效,而这里恰好就是<all_urls>。

⚠️ 说明:上方图片为扩展图标(bypass.png),仅用于示意项目身份。

这样设计的好处很直观:

  1. 权限最小化:默认状态下,扩展只对你真正在用的新闻站有操作能力,不碰其他网站;
  2. 商店合规:Google 内部政策禁止申请全网站权限的扩展上架 Chrome Web Store,这也是该项目只能以开发者模式安装的原因之一(见 README.md);
  3. 用户知情同意:想要更宽的能力(自定义站点、清除任意站点 cookie、拦截通用付费墙脚本)?可以,但必须由你主动点击开启。

opt-in 页面:三个开关分别管什么?

首次安装后,background.js 会自动打开一个专属页面:options/optin/opt-in.html。页面上有三组独立开关:

开关作用默认状态
setCookie opt-in为 Irish Independent、The Belfast Telegraph 等少数站点写入一个不含个人信息的subscribercookie(逻辑见 contentScript.js)关闭
custom sites opt-in开启后申请<all_urls>权限,即可使用自定义站点,并支持对"未列入清单"的站点清除 cookie、拦截通用付费墙脚本关闭
check update opt-in允许扩展在启动和打开选项页时检查站点规则是否有更新开启

其中custom sites opt-in就是标题所说的核心:点击Enable按钮后,opt-in.js 会调用permissions.request({origins: ["<all_urls>"]})向浏览器发起系统级授权弹窗——只有你点"允许",权限才真正授予;点Disable则通过permissions.remove立即收回。

不想开全网站权限?按需申请单个域名

Bypass Paywalls Clean 还准备了更"轻"的替代方案,适合只想处理某一两个站点的用户:

  • 方案 A:只为你添加的自定义站点申请权限进入 Custom sites 选项页(options/options_custom.html),点Request permissions,扩展会针对你列表里的每个域名(形如*://*.example.com/*)发起授权,而不是整个互联网。相关逻辑见 options_custom.js。

  • 方案 B:点 BPC 图标 → clear cookies弹出菜单中的 clear cookies 按钮会先检查当前站点权限,若没有则临时向你请求当前这一个域名的权限,清除完 cookie 即可,见 popup.js。

💡 小提示:未获得权限的自定义站点,工具栏图标角标会显示C(见 background.js),提醒你该站点还差一次授权。

自定义站点的"正确打开方式"三步走

  1. 添加站点:打开 Custom sites 页面,填写站点域名和 bypass 选项(例如useragent: googlebot、block_regex等),可参考项目自带的示例清单 custom/sites_custom.json;
  2. 授予权限:优先用"方案 A"只授权自己添加的域名;如果你还希望自动处理同一出版集团下大量未列出的子站点(如地方版报纸),再考虑开启<all_urls>的 custom sites opt-in;
  3. 验证效果:刷新目标页面,看角标是否从C变为ON;若部分高级功能仍受限,检查是否漏开了 setCookie opt-in。

📌 进阶技巧:Chrome 下以"load unpacked"方式安装时,可选权限可能在重载扩展后丢失。此时可以把 custom/manifest.json(它在permissions中直接包含<all_urls>,且省略了逐站域名列表)复制覆盖到主扩展目录,免去反复授权的麻烦——但注意这等于把全网站权限设为默认开启,请先想清楚。

常见问题速查(FAQ)

Q1:不开<all_urls>,内置站点还能正常工作吗?可以。内置数百个站点域名都写在默认permissions中,opt-in 只影响自定义站点和"未列入清单"的站点。

Q2:开启 custom sites opt-in 后后悔了,怎么关?回到 opt-in 页面点Disable,<all_urls>权限会被立即移除;或在浏览器扩展详情页手动关闭"在所有网站上"的权限。

Q3:开启后为什么某些站点把我登出了?这是预期行为:为了绕过"免费文章次数"限制,扩展会在页面加载前后清除对应站点的 cookie(见 background.js),付费订阅站请添加到 Excluded sites 排除列表。

小结

Bypass Paywalls Clean 的权限设计是 Chrome 扩展领域一个值得借鉴的样本:默认最小权限 + 按需升级 + 可随时收回。理解<all_urls>放在optional_permissions的意义,再配合 opt-in 页面和单域名授权两条路径,你既能用满自定义站点的强大功能,又把授权范围牢牢握在自己手里。

  • 前端

【免费下载链接】bypass-paywalls-chrome-clean-magnolia1234

Bypass Paywalls Clean for Chrome (no Google Analytics, lot of updates/bug-fixes and custom sites)

项目地址:https://gitcode.com/gh_mirrors/bypa/bypass-paywalls-chrome-clean-magnolia1234
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进