- 前端
【免费下载链接】bypass-paywalls-chrome-clean-magnolia1234
Bypass Paywalls Clean for Chrome (no Google Analytics, lot of updates/bug-fixes and custom sites)
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),仅用于示意项目身份。
这样设计的好处很直观:
- 权限最小化:默认状态下,扩展只对你真正在用的新闻站有操作能力,不碰其他网站;
- 商店合规:Google 内部政策禁止申请全网站权限的扩展上架 Chrome Web Store,这也是该项目只能以开发者模式安装的原因之一(见 README.md);
- 用户知情同意:想要更宽的能力(自定义站点、清除任意站点 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),提醒你该站点还差一次授权。
自定义站点的"正确打开方式"三步走
- 添加站点:打开 Custom sites 页面,填写站点域名和 bypass 选项(例如
useragent: googlebot、block_regex等),可参考项目自带的示例清单 custom/sites_custom.json; - 授予权限:优先用"方案 A"只授权自己添加的域名;如果你还希望自动处理同一出版集团下大量未列出的子站点(如地方版报纸),再考虑开启
<all_urls>的 custom sites opt-in; - 验证效果:刷新目标页面,看角标是否从
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)
相关推荐
以《深入理解计算机系统》(CSAPP)为例:编程学习为什么读不进去,以及正确的打开方式
以《深入理解计算机系统》(CSAPP)为例:编程学习为什么读不进去,以及正确的打开方式 本文整理自 InterviewGuide 仓库中阿秀的学习笔记 《以〈深
教程LinearMouse权限管理详解:为什么需要辅助功能权限以及如何正确配置
LinearMouse权限管理详解:为什么需要辅助功能权限以及如何正确配置 LinearMouse作为一款强大的Mac鼠标和触控板实用工具,为用户提供了丰富的自
桌面应用Modern JavaScript Tutorial:为什么 `οnclick="handler()"` 里的 `return false` 不生效,以及如何正确阻止浏览器默认行为
Modern JavaScript Tutorial:为什么 οnclick="handler " 里的 return false 不生效,以及如何正确阻止浏览
文档/教程前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考