gpt4 book ai didi

python - 使用 SOCK_STREAM 代理处理 https 请求

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:33 24 4
gpt4 key购买 nike

我正在做一个项目,允许用户通过代理重定向他的浏览。系统是这样工作的——用户在远程 PC 上运行这个代理,然后也在他的笔记本电脑上运行代理。然后,用户将其在笔记本电脑上的浏览器设置更改为使用 localhost:8080 以使用该本地代理,该代理又将所有浏览器流量转发到远程 PC 上运行的代理。

这是我遇到 HTTPS 的地方。我能够让正常的 HTTP 请求正常工作,但当我点击 google.com 时,Firefox 就跳过了我的代理并连接到 https://google.com。直接。

我的想法是观察浏览器请求 say CONNECT host:443 然后使用 python ssl 模块来包装该套接字。这将使我在外部代理和目标服务器之间建立安全连接。但是,当我运行 wireshark 以查看浏览器请求在 ssl 启动之前的样子时,它已经存在,这意味着它看起来像浏览器直接连接到端口 443,这解释了为什么它省略了我的本地代理。

我希望能够处理 HTTPS,因为这会带来完整的浏览体验。

我非常感谢任何可以插入正确方向的提示。

最佳答案

嗯,在对代理做了相当多的阅读之后,我发现我对这个问题的理解是不够的。

对于可能最终与我处于同一位置的任何其他人,请知道 HTTP、HTTPS 和 SOCKS 代理之间存在很大差异。

HTTP 代理通常会快速查看 HTTP header 以确定将整个数据包转发到哪里。只需具备一些套接字的基本知识,您就可以很容易地自己编写代码。

另一方面,

HTTPS 代理必须以不同的方式工作。他们应该能够为客户端完成整个 SSL 魔术,或者他们可以尝试不做任何更改地传递流量,但是如果选择后一种解决方案,用户 IP 将是已知的。这在编码方面要求更高。

SOCKS 代理是一个完全不同的,尽管非常酷的野兽。他们在 OSI 模型的第 5 层工作,老实说,我什至不知道从哪里开始创建一个。他们实现了安全性和匿名性。但是,我知道有人可以使用 SSH 在他们的机器上启动 SOCKS 代理,只需阅读此 http://www.revsys.com/writings/quicktips/ssh-tunnel.html .该链接还给出了一个想法,即应该可以从 Python 脚本使用 SSH 以使其更加方便。

希望这对和我有同样问题的人有所帮助。祝你好运!

关于python - 使用 SOCK_STREAM 代理处理 https 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com