【问题标题】:SSL TIdHTTP with Socks带袜子的 SSL TIdHTTP
【发布时间】:2013-09-12 15:07:48
【问题描述】:

我在我的应用程序中经常使用TIdHTTP,我的用户请求具有特定超时的 Socks4/5 功能。我使用我的应用程序与 SSL 网站进行通信,之前我只使用常规的ProxyParams。 如何将 Socks4 和/或 Socks5 支持添加到具有特定超时的TIdHTTP 组件?

编辑:

由于我没有任何 Socks4/Socks5 代理,我创建了自己的一个新应用程序来测试。 我添加了TIdSocksServer 并为其分配了TIdServerIOHandlerSSLOpenSSL。 为了确保它可以连接,我向OnConnect 添加了一个消息框。服务器监听8080端口,设置为Active:=True;

这是我的 TIdHTTP 组件的代码:

procedure NewQuery;
var
 IDHTTP                                : TIdHTTP;
 SSL                                   : TIdSSLIOHandlerSocketOpenSSL;
 Socks                                 : TIdSocksInfo;
begin
 Socks                                 := TidSocksInfo.Create (NIL);
 IDHTTP                                := TIdHTTP.Create(NIL);
 SSL                                   := TIdSSLIOHandlerSocketOpenSSL.Create(NIL);
 IDHTTP.IOHandler                      := SSL;
 SSL.TransparentProxy                  := Socks;
 Socks.Host                            := 'localhost';
 Socks.Port                            := 8080;
 Socks.Authentication                  := saNoAuthentication;
 Socks.Version                         := svSocks4; // or svSocks5
 IDHTTP.ConnectTimeout                 := 5000; // 5 seconds
 IDHTTP.Get ('www.google.com');
end;

不确定我是否以正确的方式使用了此方法,但似乎 GET 请求无需连接到 socks 服务器即可正常工作。是不是我用错了?

【问题讨论】:

  • 当透明代理组件没有分配Owner 时,IOHandler.TransparentProxy 属性设置器具有特殊的逻辑来制作透明代理的新拥有副本,而不是使用您传入的原始副本。所以请注意为此。

标签: delphi indy indy10


【解决方案1】:

TIdSocksInfo 组件分配给IOHandler 的TransparentProxy 属性。

【讨论】:

  • 谢谢。我不知道TransparentProxy 属性。
  • 我已经编辑了我的问题,似乎我错过了一些东西。很抱歉(再次)打扰您,但您介意再看一下并提供更详细的答案吗?
  • 不要将 SSL 添加到您的 SOCKS 服务器。客户端将首先建立与代理的连接,让代理与目标服务器建立连接,然后客户端将直接与目标服务器协商 SSL 会话,而不是与代理。
  • 我明白了。所以我的代码是对的吗?即使我将 socks 主机和端口设置为非侦听地址,它似乎也没有做任何事情,它仍然建立与网络服务器的连接,就像根本没有 socks 信息一样。
  • 更改代码以将TIdSocksInfo 设为非零Owner。否则IOHandler 将制作TIdSocksInfo 的内部副本,但主机/端口不会转移到副本中。我建议将TIdHTTP 设为IOHandlerTIdSocksInfoOwner
猜你喜欢
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
相关资源
最近更新 更多