北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

どろくさいなあ in LWP

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にコントロールされちゃうわけです。でも、こういうコードって泥臭くて嫌ですよね・・・実用レベルのコードだとこういうの入ってくるのは仕方ないんでしょうが。