【问题标题】:How to redirect a request in a Safari Content Blocker extension如何在 Safari 内容拦截器扩展中重定向请求
【发布时间】:2020-06-15 01:15:55
【问题描述】:

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

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

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

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

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

这在 Safari/MacOS 中是否可行?我可以通过连接 onBeforeRequest 钩子在 chrome 和 firefox 扩展中做到这一点。我向我的设备发出请求,如果设备显示域错误,则我返回 {redirect_url: 'http://localhost:9000'},浏览器重定向此请求。

【问题讨论】:

    标签: safari safari-extension safari-app-extension


    【解决方案1】:

    您可以尝试在内容脚本中拦截 HTTP 请求,然后将请求重定向到本地主机(如果有请求)。 post 中提供了更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多