如何在Safari内容阻止程序扩展中重定向请求



我正在构建一个safari应用程序扩展,它将通过本地代理重定向某些请求。

例如,https://tracking-script.com/track/user/123需要重定向到http://localhost:9000

唯一的问题是我不知道在应用程序引导过程中哪些域是坏的。我的捆绑包包括:1.MacOS应用程序托管safari扩展和内容拦截程序2.Safari扩展,我可以在其中执行某些操作3.内容拦截器,它基本上在应用程序引导过程中为Safari提供规则https://www.infoq.com/articles/safari-content-blockers/

是否可以动态检查请求并通过给定端口重定向它?

我在本地网络上有一个设备,可以为我提供这些规则。因此,如果一个页面请求https://tracking-script.com/track/user/123,我首先想咨询在localhost上运行的设备。如果来自设备的响应显示this domain is bad,我希望我的内容阻止程序将此请求重定向到http://localhost:9000,而不是转到原始URL。

这在Safari/MacOS中可能吗?我可以在chrome和firefox扩展中通过挂接onBeforeRequest钩子来实现这一点。我向我的设备发出请求,如果设备说域不好,那么我返回{redirect_url: 'http://localhost:9000'},浏览器会重定向此请求。

您可以尝试在内容脚本中拦截HTTP请求,然后在请求时将请求重定向到localhost。更多细节在这篇文章中给出。