我有一个perl脚本,它接受一堆参数作为输入。根据输入,执行不同的业务逻辑集。
在其中一个案例中,我将密码作为输入。此密码将记录在日志文件中。这是我想避免的情况。
示例代码为:
use strict;
use warnings;
use Data::Dumper qw(Dumper);
print Dumper \@ARGV;
现在让我说我将上述脚本称为:
test.pl -a='getData' -b='abc' -password='xyz' -c='pqr'
现在输出如下:
$VAR1 = [
'-a=getData',
'-b=abc',
'-password=xyz',
'-c=pqr'
];
所以不是记录密码,而是(从安全角度来看)我想屏蔽字段。输出如下所示:
$VAR1 = [
'-a=getData',
'-b=abc',
'-password=*******',
'-c=pqr'
];
这里几件事:
答案 0 :(得分:0)
您可以在执行任何其他操作之前从@ARGV
复制密码字段,然后屏蔽该副本以用于记录。 @ARGV
将包含原始的未屏蔽版本。
use warnings;
use strict;
my ($masked_pw) = grep /-password=.*/, @ARGV;
if ($masked_pw){
my $mask = '*****';
$masked_pw =~ s/(-password=).*/$1$mask/;
}
我和@ThisSuitIsBlack虽然......但密码仍可在其他地方使用。