特定のディレクトリ構成を再帰的にたどり
一覧を表示しようとしています。
(将来的には各ディレクトリごとに処理を行う予定です)
しかし再帰的には表示されず一部のみ
表示されてしまいます。
私は何を間違っているのでしょうか?
【list.cgi】
#!/usr/bin/perl -wT
print IContent-type: text/htmlononI;
use File::Find;
$dir = G.G;
find(o&print_dir, $dir);
sub print_dir { print $File::Find::name, I<br />I; }
【$dir = G.Gのときの出力結果】
.
./list.cgi
./test2
【$dir = Gtest1Gのときの出力結果】
test1
test1/test13
【ディレクトリ構成(ftpでfindした結果)】
> find *
list.cgi
test1
test1/test11
test1/test11/test111
test1/test12
test1/test13
test1/test13/test131
test2
http://www.ipa.go.jp/security/awareness/vendor/programming/a04_0...
4-3. PerlのTaintモード(汚染検出モード)
1行目で指定している -wT を -w に変更すれば期待通りに動くはずです。
-T オプションが指定されれいる場合、”/” を二つ以上含む文字列が変数に
入力されるとセキュリティ上危険とみなして処理を中止してしまうようです。
あっ。なるほど。
セキュリティーを強化しようと思ったのが
仇になってしまいました。
原因がわかってすっきりしました。
ありがとうございます。