我根本不知道perl,但我需要更改退出程序以提供更清晰的调试输出。Perl安全性,打印声明?
这是结:
print $lfh "$ts\t$tid\t$msg\n";
其中$味精会被加入函数的参数是这样被创建:在$味精
my $msg = join("\t", @_);
某处,我想在调用程序时添加用户提供的命令行参数之一。如果打印到标准输出,是否存在利用漏洞的风险?
open my $lfh, ">>", $ENV{GL_LOGFILE}
的信息,我可以:
还要注意$ LFH将来自环境变量的采取,如果它是写一个文件,就像这样(通过脚本本身早些时候设定) perl安全上找不到关于打印声明,所以也许我只是完全偏执狂,但比对不起更安全...
环境可以视为用户输入,所以它需要某种消毒。使用'open'三个参数是一个优点。如果STDOUT输出不被执行,它不应该构成威胁。 –