私はクロスサイトスクリプティング攻撃またはSQLインジェクション攻撃に対して脆弱であると言われてきた古いPerlコードを持っています。私は#!/usr/local/bin/perl -T
に#!/usr/local/bin/perl
からシェバングを変更することにより、汚染モードをオンにしたいと、今私は、このエラーメッセージが表示されます考え出し:私はPerl Taintモードのエラーメッセージを理解していません
Insecure dependency in require while running with -T switch at <big long path>/main.cgi line 26.
コードは次のようになります。
1 #!/usr/local/bin/perl -T
.
.
.
12 use strict;
13
14 use vars qw(%opt $VERSION);
15
16 use CGI qw/:standard *table start_ul/;
17 use CGI qw(:debug);
18 use CGI::Carp qw(fatalsToBrowser);
19 #use CGI::Pretty qw(:html3);
20 $CGI::Pretty::INDENT = " ";
21 use Tie::IxHash;
22 use FindBin qw($Bin);
23 use lib "$Bin/../../lib";
24 use lib "$Bin/../lib";
25
26 use Common::Config;
共通:: Configを
$ ls -l lib/Common/Config.pm
-r--r--r--. 1 someguy example 5840 Oct 9 20:08 lib/Common/Config.pm
私はapache
に所有権を変更してみましたが、私はまだ汚染のエラーメッセージが表示されます。この所有権と権限を持っています。
UPDATE:
私はそうのような私$Bin
変数UNTAINTしようとしています:
use FindBin qw($Bin); # Where are we ?
if ($Bin =~ /^([-\@\w.]+)$/) {
$Bin = $1; # $data now untainted
} else {
die "Bad data in '$Bin'"; # log this somewhere
}
をしかし、ここで安全ではない、私はまだ汚染の誤差は約use Common::Config;
私はそれらの行を含めるために、質問を更新します。ありがとうございました。 –