成人内容过滤 / dansguardian / 脚本语言 / 无需解密 SSL

成人内容过滤 / dansguardian / 脚本语言 / 无需解密 SSL

通过阅读大量网页,我得出以下结论:

为了从 Twitter 等 https 网站过滤成人内容(而不是完全阻止),我需要在我的 Ubuntu 代理框上设置类似 dansguardian/squid 等的东西来执行 SSL 的中间人拦截。

有人知道是否可以在我的 Ubuntu 代理上执行以下类似操作吗:

  1. 使用 bash/php 之类的语言来获取用户请求的特定 https 站点(如 Twitter)的“内容”(即不破坏 SSL)。这就像在浏览器中按 ctrl-a / ctl-c 一样。

  2. 将内容写入传递给 dansguardian 的文件中。

  3. 然后 dansguardian 根据关键字过滤功能允许或阻止该页面。

我已经在使用 OpenDNS / hosts 文件重定向,它效果很好,但对于 Twitter 这样的网站却不起作用。

我研究过 Untangle/K9 Web Protection 等技术,但我最理想的选择是寻找一种可以基于代理的免费解决方案。如果我可以不使用 SSL,那么它似乎会更简单/更安全/更少的支持呼叫。

谢谢!

答案1

无需黑客攻击/利用/破坏 SSL 即可进行 MITM 攻击(Cloudflare 的工作原理),诀窍是使用 2 个连接。

您托管一个 Web 服务器(在您的代理盒上),它接受所有请求/连接(因此可以访问来自用户的未加密内容)。

当使用代理的用户发出请求时,
您的 Web 服务器可以接受该请求并与您的用户建立 SSL 会话。
在您的代码(例如 PHP)中,您可以创建一个客户端实例,该实例会创建与所请求服务器的第二个 SSL 连接。
您的客户端实例会在第二个连接上获取响应。
然后,您的 Web 服务器会在第一个 SSL 连接上将该响应(由客户端实例接收)重新发送回用户。

如果您需要如何执行此操作的代码示例,我怀疑这会导致问题过于宽泛(可能出现太多、太长/好的答案)。

答案2

使用 bash/php 等语言来获取用户请求的特定 https 网站(如 Twitter)的“内容”(即不会破坏 SSL

使用 HTTPS,完整的 URL 是加密的,只有主机名在 TLS 握手中以明文形式发送。这意味着,即使要先获取 URL,从而知道用户请求了什么,您也必须成为 SSL 的中间人。

答案3

感谢大家的回复。我是过滤 https 方面的新手,可能问了一个令人困惑的问题。遗憾的是,像 Twitter 这样的网站不提供其内容的安全 URL 版本,如谷歌安全搜索。SSL 似乎很棒,但当您试图过滤可疑内容时除外 :)

相关内容