我根本不知道perl,但我需要更改退出程序以提供更清晰的調試輸出。Perl安全性,打印聲明?
這是結:
print $lfh "$ts\t$tid\t$msg\n";
其中$味精會被加入函數的參數是這樣被創建:在$味精
my $msg = join("\t", @_);
某處,我想在調用程序時添加用戶提供的命令行參數之一。如果打印到標準輸出,是否存在利用漏洞的風險?
open my $lfh, ">>", $ENV{GL_LOGFILE}
的信息,我可以:
還要注意$ LFH將來自環境變量的採取,如果它是寫一個文件,就像這樣(通過腳本本身早些時候設定) perl安全上找不到關於打印聲明,所以也許我只是完全偏執狂,但比對不起更安全...
環境可以視爲用戶輸入,所以它需要某種消毒。使用'open'三個參數是一個優點。如果STDOUT輸出不被執行,它不應該構成威脅。 –