記事No | : 15409 |
投稿日 | : 2017/02/25(Sat) 13:38:34 |
タイトル | : Software errorで使えない |
ID情報 | : hei01101 |
投稿者 | : kayou |
URL | : http://www.kayou.mydns.jp:801/perl/pcheck.cgi |
KENT-WEBさんのPerl文法チェッカー(Perl Checker)を使用しwebでpcheck.cgiを動かしたら,
文法チェック欄にて
「Software error:
Insecure $ENV{PATH} while running with -T switch at /var/www/perl/pcheck.cgi line 184.」
の表示になり使えません。(文法上正しいかどうか判別できない)
184行目 → open(PROC,"perl -c $in{file} 2>&1 |");
Windows-Server2008のOSでは問題ないのですが、CentOS7になるとエラーになってしまいます。。。
CentoOSでは使えないのでしょうか?
記事No | : 15410 |
投稿日 | : 2017/02/25(Sat) 14:36:37 |
タイトル | : Re: Software errorで使えない |
ID情報 | : teketen |
投稿者 | : てけてん |
サーバー又は、スクリプトがTaintモードではありませんか?
PerlのTaintモード(汚染検出モード)
https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_03_main.html
Perl診断メッセージ
http://www.namazu.org/~tsuchiya/perl/info/perl-ja_109.html
記事No | : 15411 |
投稿日 | : 2017/02/25(Sat) 17:03:00 |
タイトル | : Re^2: Software errorで使えない |
ID情報 | : hei01101 |
投稿者 | : kayou |
> サーバー又は、スクリプトがTaintモードではありませんか?
> PerlのTaintモード(汚染検出モード)
> https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_03_main.html
> Perl診断メッセージ
> http://www.namazu.org/~tsuchiya/perl/info/perl-ja_109.html
てけてんさんご回答ありがとうございます。
perlスクリプトはKENTさんのをそのまま使用してますので、Taintモードではないと思います。
スクリプト1行目は #!/usr/bin/perl となっています。
サーバーにもTaintモードがあるのでしょうか?
記事No | : 15412 |
投稿日 | : 2017/02/25(Sat) 22:15:13 |
タイトル | : Re^3: Software errorで使えない |
ID情報 | : teketen |
投稿者 | : てけてん |
> サーバーにもTaintモードがあるのでしょうか?
サーバー側での設定ですね。
(私は、詳しくないのですが^^;)
ご利用なのか分かりませんが、mod_Perlの場合、perl.confで設定出来るようです。
参考:「Fedora17 Webサーバー Perlの設定」
http://pcmemorin.blog.fc2.com/blog-entry-389.html?sp
> PerlSwitches -T
ちょっと動作確認が出来ないのですが、スクリプトの対策としては、セキュアPerlプログラミングに書かれてあるように、
pcheck.cgi
183行目付近
# Perl文法チェック
open(PROC,"perl -c $in{file} 2>&1 |");
の前の行に
if($in{file} =~ /\A([-\@\w.]+)\z/) {
$in{file} = $1;
}
を挿入してみるとか。
記事No | : 15413 |
投稿日 | : 2017/02/25(Sat) 23:06:12 |
タイトル | : Re^4: Software errorで使えない |
ID情報 | : hei01101 |
投稿者 | : kayou |
URL | : http://www.kayou.mydns.jp:801/perl/pcheck.cgi |
> サーバー側での設定ですね。
> (私は、詳しくないのですが^^;)
> ご利用なのか分かりませんが、mod_Perlの場合、perl.confで設定出来るようです。
> 参考:「Fedora17 Webサーバー Perlの設定」
> http://pcmemorin.blog.fc2.com/blog-entry-389.html?sp
> > PerlSwitches -T
>
> ちょっと動作確認が出来ないのですが、スクリプトの対策としては、セキュアPerlプログラミングに書かれてあるように、
>
> pcheck.cgi
> 183行目付近
>
> # Perl文法チェック
> open(PROC,"perl -c $in{file} 2>&1 |");
>
> の前の行に
>
> if($in{file} =~ /\A([-\@\w.]+)\z/) {
> $in{file} = $1;
> }
>
> を挿入してみるとか。
てけてんさんありがとうございます。
perl設定で、PerlSwitches -Tを有効にしてました。
コメントアウト後は、pcheckの文法欄のSoftware errorが消えて、問題なく使えました。
ありがとうございました。