小编Sil*_*nce的帖子

如何检查当前的Perl语句是否包含污染数据?

我编写了自己的小Perl调试器,为每个执行的行打印,当前文件名和相应的行号.如何检测当前的Perl语句是否包含污染数据?

我知道Scalar :: Util模块中有一个"污染"的功能.但是它只接受变量名作为参数,而不是Perl语句.

我已将Taint附加到词法变量以跟踪它.如果我能够看到一个语句是否被污染,我只能打印那些包含我的污染变量的行.这是我的自定义污点脚本:

Taint.pl

use strict; 
use warnings; 

use Taint::Runtime qw(taint_start taint); 
taint_start(); 

my $data = taint("abc"); --> interesting 
my $noise = "noise"; --> not interesting 
my $evil = $data . " evil"; --> interesting
Run Code Online (Sandbox Code Playgroud)

Debugger.pl

sub DB::DB{

    my($package, $filename, $line) = caller;

    print $filename . ":" . $line . " ";
    scalar <STDIN>;

}

1;
Run Code Online (Sandbox Code Playgroud)

perl expression taint

7
推荐指数
1
解决办法
286
查看次数

标签 统计

expression ×1

perl ×1

taint ×1