Chrome 扩展 uMatrix 被弃用,MV3 环境下 matrix³ 原型尝试实现其功能
Chrome 扩展 uMatrix 被弃用MV3 环境下如何实现其功能matrix³ 原型来尝试曾经有一款很棒的 Chrome 扩展程序叫 uMatrix它由 uBlock Origin 的开发者 Raymond Hill 编写是一种直观控制网站权限和子资源请求的工具。它看上去是这样的uMatrix1除非你是技术爱好者否则可能对这个不太感兴趣。但它能让你限制第三方提供子资源请求的范围还能控制对框架、脚本、视频、字体等功能的访问。你也可以通过浏览器设置手动完成部分操作但 uMatrix 让这些操作变得快速又简单。这意味着原本繁琐的网页浏览控制变得相对轻松好吧至少没那么麻烦了。总之很喜欢 uMatrix 提供的各种控制网站权限的功能。uMatrix 的功能或多或少是 uBlock Origin 功能的子集。为了避免同时维护两个项目Hill 弃用了 uMatrix并鼓励用户迁移到 uBO。这其实还行uBO 增加了一些很喜欢的功能比如 外观过滤器。如果你不介意手动编写更复杂的规则uBO 基本能实现 uMatrix 的所有功能。坏消息是uBO 是一个 传统 MV2 扩展程序而它的继任者 uBO Lite 移除了这个功能。真不想放弃这个功能于是思考是否有解决办法。可选方案问题是在 MV3 环境下还能实现 uMatrix 的功能吗声明式网络请求declarativeNetRequestMV2 和 MV3 的主要区别在于在 MV3 中执行回调时无法再像以前那样阻止请求也就是所谓的“阻塞式”网络请求。如果要拦截请求现在必须通过 声明式方式 来实现。这意味着不能在每个请求上运行 JavaScript 代码而是要提前声明想要应用的操作。可能你已经听说过这个有争议的点声明式方法无法完全实现回调中所有可能的操作因此功能有所削弱。从技术上讲确实如此但实际上这些规则的灵活性足以满足所有需求。策略网络上已经有一套控制功能和子资源的系统叫做 内容安全策略Content Security PolicyCSP。显而易见的设计思路是使用 declarativeNetRequest 添加我们自己的 Content-Security-Policy这样浏览器就会帮我们完成所有工作。我们只需要提供一个方便的界面来管理它。但是如何提供一个允许和拒绝的子资源列表呢使用 uMatrix 时它会显示子资源类型和来源的列表让你手动批准或拒绝它们。这是 uMatrix 的核心优势所以至关重要。其实CSP 已经提供了解决方案有一个 report-to 指令它会指示浏览器将任何安全违规信息发送到报告端点。我们要做的就是启用这个功能添加另一条 declarativeNetRequest 规则来捕获这些报告然后根据浏览器发送的报告生成一个列表。这样又成功把一项任务外包出去啦 当然这需要做一些准备工作但所有的要素都已具备觉得完全可行。概要既然我们已经大致了解了它可能的实现方式……那就得有人来做个概念验证。好吧来试试。这是首次尝试matrix³。matrix³显然它还处于原型阶段但基本能正常工作。想在博客上分享这个项目看看有没有人感兴趣代码很简单不需要构建也没有依赖项没有使用任何框架。你只需 git clone 下来然后在 Chrome 中“加载已解压的扩展程序”即可。不是网页开发者而且显然完全没有用户体验设计的技能 如果你觉得这是个糟糕的主意或者知道更好的解决方案又或者想提供帮助请告诉我主页 • 关于 • 联系我们
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2620282.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!