尝试在LWP::Protocol::Net::Curl perl模块中使用'proxyheader'会导致segfault

tct7dpnv  于 2023-06-23  发布在  Perl
关注(0)|答案(1)|浏览(158)

尝试只将头发送到代理,获取segfault

#!/usr/bin/perl -w

$| = 1;

use LWP::Protocol::Net::Curl ssl_verifyhost => 0, ssl_verifypeer => 0, verbose => 1, proxy_ssl_verifypeer => 0, proxy_ssl_verifyhost => 0, headeropt => 1, proxyheader => ['ab: ba'];

use LWP::UserAgent;

my $ua = LWP::UserAgent->new();
$ua->proxy([ 'https' ] => 'http://45.144.165.248:8080');
$ua->agent('curl');

my $content = $ua->get('https://google.com/');

print $content->decoded_content;
root@cyrillpetroff:~# perl t.pl
*   Trying 45.144.165.248:8080...
* Connected to 45.144.165.248 (45.144.165.248) port 8080 (#0)
* allocate connect buffer
* Establish HTTP proxy tunnel to google.com:443
Segmentation fault (core dumped)

我不知道我做错了什么。或者,这是模块中的错误。有必要发送一个自定义的代理头,仅此而已。
先谢谢你。

62lalag4

62lalag41#

$ua->proxy([ 'https' ] => 'http://45.144.165.248:8080');
我不认为你可以像这样混合使用httpshttp协议,更多信息请参阅https://stackoverflow.com/a/56657721/2173773。如果我在localhost上使用squid代理服务器使用以下命令:

$ua->proxy([ 'https' ] => 'https://localhost:3128');

它工作正常,但如果我使用http而不是https:

$ua->proxy([ 'https' ] => 'http://localhost:3128');

我得到了和你一样的分段故障。

相关问题