在 Windows 中阻止或重定向网站的方法有哪些?

在 Windows 中阻止或重定向网站的方法有哪些?

除了 hosts 文件之外,还有哪些方法可以让我通过使用软件来重定向或完全阻止网站?

Malwarebytes Premium 能够重定向它检测到的恶意网站并将其重定向到其阻止页面 - 无需扩展或看似明显的方法。

Malwarebytes 之类的程序如何将请求重定向到不同的页面?

我想在这里问一下,因为这更多的是关于 Windows 的内部运作,而不是编码问题。

答案1

我不太了解 Malwarebytes 的 HTTP 过滤器,但我认为它的工作原理类似于Fiddler

8888Fiddler 本身是一个处理请求的 HTTP 代理。它的工作原理是在接受 HTTP 和 HTTPS 连接的端口上运行 HTTP 服务器。

当您运行 Fiddler 时,它会重新配置 Windows 的系统范围 Internet 连接设置,以将自身设置为系统范围的 HTTP 代理。如果您查看控制面板 > Internet 选项 > 连接 > LAN 设置 > 代理服务器 > 高级 > HTTP: ,就会看到这一点。127.0.0.1:8888当您关闭 Fiddler 时,它会将设置恢复为以前的值。

任何使用 Internet 选项的应用程序都会自动使用这些设置温因特网温控HTTP(这些是处理用户空间应用软件的 HTTP 请求的 Windows 组件)。不使用 WinINet 或 WinHTTP 的软件(例如具有自己的 HTTP 客户端库的 Java 和 .NET 程序)通常都会遵守 WinINet/WinHTTP 系统设置(无论如何,在大多数情况下)。Chrome 也有自己的 HTTP 客户端堆栈,但也尊重系统设置。我相信 Firefox 也一样。

然后,这些 HTTP 代理会接收通常直接发送到目标网站的请求,然后检查请求并处理它(例如拒绝它)或将其转发到目标目的地。HTTPS 可以使用受信任且对所有主机有效的私有 X.509 证书来处理 - 或者通过转发这些请求。请注意,如果您的证书不是真正私有的并且特定于您的机器,那么这是一个巨大的安全责任,您应该立即删除该证书。

这篇博客文章介绍了 Fiddler 及其工作原理:http://www.mehdi-khalili.com/fiddler-in-action/part-1

除了 HTTP 和 HTTPS 代理之外,SOCKS 代理还提供注入路由 - 尽管它们是一种较旧的方法,现在并不常见(因为 SOCKS 适用于所有 TCP 和 UDP 流量,而 HTTP 代理仅专门处理 HTTP)。

更新:

Windows Vista 在 Windows 中引入了一个新的扩展点,称为 Windows 筛选平台 (WFP)它提供了比手动 HTTP/HTTP 代理配置更好的 API,并且允许软件过滤除 HTTP 流量之外的更多内容。它还内置于网络堆栈中,这意味着它应该能够拦截所有 HTTP 流量,即使是来自不遵守 WinINet 或 WinHTTP 配置的应用程序的流量。

此 API 在 Windows 的后续版本中进行了更新,因此得到了积极支持,并且它似乎是专门为安全产品构建的:

利用 WFP API,开发人员可以实现防火墙、入侵检测系统、防病毒程序、网络监控工具和家长控制。

Windows 过滤平台是一个开发平台,而不是防火墙本身。Windows Vista、Windows Server 2008 及更高版本的操作系统中内置的防火墙应用程序 - 高级安全 Windows 防火墙 (WFAS) - 是使用 WFP 实现的。

值得指出的是,WFP 是一个内核模式 API - 这意味着它将更难以编程,并且如果 WFP 实现存在错误并崩溃,则有可能会导致 BUGCHECK(蓝屏死机),因此开发人员可能更喜欢使用 HTTP 代理而不是 WFP,因为它更容易并且不太可能导致糟糕的用户体验。

此处记录了这一点:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366510%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

相关内容