【发布时间】:2014-08-22 03:31:05
【问题描述】:
TL;DR
我想设置一个本地 HTTPS 代理,它可以 (LOCALLY) 修改我机器上 HTML 页面的内容。这可能吗?
动机
多年来,我一直使用名为 GlimmerBlocker 的 HTTP 代理。它始于 2008 年,作为一种基于代理的阻止广告的方法(与浏览器扩展或其他 OS X 特定的黑客如 InputManagers 相对)。但除了屏蔽广告之外,它还允许用户将自己的 CSS 或 JavaScript 注入页面。开发速度已经严重放缓,但它仍然非常有用。
唯一的问题是它不做 HTTPS (from its FAQ):
https 页面上的广告不会被屏蔽
当 Safari 使用代理获取 https 页面时,它并没有真正使用 http 协议,而是建立隧道 tcp 连接,因此 Safari 接收加密字节。优点是任何中间代理都不能修改或读取页面内容,也不能读取 URL。缺点是,GlimmerBlocker 不能修改内容。即使 GlimmerBlocker 尝试充当中间人并对内容进行解码/编码,它也无法告诉 Safari 信任它,也无法告诉 Safari 网站证书是否有效,因此 Safari 会认为您访问了一个可疑网站。
幸运的是,大多数广告提供商不会切换到 https,因为使用 https 的页面服务速度要慢得多,并且会在广告提供商服务器上产生巨大的处理开销。
早在 2008 年,也许最后一部分是真的……但现在不是了。
明确地说,我认为 SSL 的使用越来越多是一件好事。我只是想在内容到达我的终点后重新获得对内容的控制权。
困惑点
在寻找解决方案时,我被一些明显矛盾的观点弄糊涂了。
(另外,虽然我对网页语言非常熟悉,但我总是很难理解网络和协议。在此说明,如果我遗漏了一些显而易见的东西,请见谅!)
-
我发现 this StackOverflow question 询问是否可以使用 HTTPS 代理。最佳答案是“TLS/SSL(HTTPS 中的 S)保证您和您正在联系的服务器之间没有窃听者,即没有代理。” (同样的答案随后描述了一种破解方法,但我不明白说明。无论如何,这是非常理论化的。)
-
在 OS X 中的 Network Preferences ▶︎ Advanced... ▶︎ Proxies 下,显然有一个 HTTPS 代理设置。这似乎与之前的说法相矛盾,即 TLS/SSL 对窃听的保证意味着代理的不可能性。
其他注意事项
-
我不记得在哪里,但我读到可以设置 HTTPS 代理,但它使 HTTPS 毫无意义(通过破坏过程中的安全通信)。 我不要这个!加密很好。我不想过滤其他人的流量;我只是想要一些东西来自定义内容之后我已经收到了。
-
GlimmerBlocker 有一个不错的 GUI 界面,但我也可以使用非 GUI 解决方案。我可能对网络和协议了解甚少,但我对命令行、在文本编辑器中调整设置等非常熟悉。
我问的可能吗?还是我的问题是“您要么获得安全性,要么可以通过黑客攻击来破解它并自定义您的内容——但不能两者兼而有之”?
【问题讨论】:
标签: ssl https proxy customization adblock