【问题标题】:Can a WebExtension override server IP addresses?WebExtension 可以覆盖服务器 IP 地址吗?
【发布时间】:2021-03-18 19:33:15
【问题描述】:

WebExtension 是否可以覆盖服务器的 IP 地址,或者修改/拦截 DNS 请求或覆盖 DNS 缓存?我正在尝试编写一个 WebExtension,它为浏览器提供与 cURL's --resolve 相同的功能。

具体来说:

  • 连接到与 DNS 中列出的 IP 不同的 IP
  • 为用户希望解决的特定NXDOMAIN 添加条目就好像它存在
  • 离线“解决”特定条目
  • 以软件定义的方式缓存或固定 DNS 条目,为即将发生的已知 DNS 中毒攻击做好准备

简而言之:模拟hosts 文件的效果,但没有管理权限/干扰系统的其余部分。

【问题讨论】:

  • 如果在 Firefox 中不可能并且在 Chrome 中是可能的,我将接受将此答案转换为 Chrome。
  • 我相信您的问题在这里与编程无关。然而,还有一个比上述更简单的选择:只需将 Firefox 配置为使用特定的 DOH 端点并控制该名称服务器,您可以在其中完全定义名称的解析方式。这仍然完全包含在浏览器中。
  • 不,扩展无法做到这一点。
  • 嗯,它看起来像 WebExtensions can conditionally force requests through a proxy of their choice,并且,截至 FF57(2017 年 11 月发布),it's become possible for WebExtension-induced proxying to handle DNS requests as well。因此,虽然需要一些“伙伴脚本”软件来打开 TCP 端口来运行 DNS 处理代理服务器,但它可以在 PC 甚至 VPS 上轻松运行,无需管理员权限或系统配置更改。
  • @PatrickMevzek 这个问题特别是关于 API 在一个有点流行的软件开发平台中的功能/限制。如果这不是编程问题,我很想知道是什么。

标签: dns firefox-addon-webextensions


【解决方案1】:

是的,但(目前)并非无足轻重

WebExtensions 无法直接重写这些响应,但它们可以使用browser.proxy.onRequest API 和ProxyInfo.proxyDNS 通过破坏响应的 SOCKS4 或 SOCKS5 代理重定向受影响域的 DNS 请求。 p>

但是,您将需要一个 Native Host 组件(或 VPS 等)来实际运行此代理 - 至少在 Firefox adds support for WebExtension-run sockets 之前(或提供内置的非基于套接字的代理 API )。

【讨论】:

    猜你喜欢
    • 2014-08-06
    • 2011-03-08
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多