LWPのソース読んでたら、env_proxyメソッドでこんな処理を見つけました。
sub env_proxy { my ($self) = @_; my($k,$v); while(($k, $v) = each %ENV) { if ($ENV{REQUEST_METHOD}) { # Need to be careful when called in the CGI environment, as # the HTTP_PROXY variable is under control of that other guy. next if $k =~ /^HTTP_/; $k = "HTTP_PROXY" if $k eq "CGI_HTTP_PROXY"; } # 〜〜〜後は省略〜〜〜 } }
あー、確かにProxy: って言うHTTPヘッダ渡せばHTTP_PROXYになりますもんね。other guyにコントロールされちゃうわけです。でも、こういうコードって泥臭くて嫌ですよね・・・実用レベルのコードだとこういうの入ってくるのは仕方ないんでしょうが。