« ulogd mysql のtimeout | メイン | あけましておめでとうございます。 »
2008年12月27日
cgi.pmで@が最後に含まれるpathを渡すとprocessがdieする >>Perl
cgi.pmで@が最後に含まれるpathを渡すとprocessがdieする。
cgi.pmの処理がまずいせいです。
例えばこんなのを渡すとcgi.pmが死ぬ。
http://nantoka/cgi/nantoka.cgi/%5bjv%40
対処方法。
$cgi = new CGI;
は、eval でブレースしなきゃだめ。
eval {
$cgi = new CGI;
};
path_infoはcgi.pmを使って取得しない。
@が含まれないんなら、evalでブレースしとけば一応安全。
eval {
$path_info = $cgi->path_info() || '';
};
で、エラーは出なくなるけど、値は取得できません。
$ENV{'PATH_INFO'};
で自前でとった方が安全だろうねえ。
cgi.pm 3.15でのお話。
その後どうなってるかは試してみてません。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。