如何在Perl脚本中设置污点模式,并使用'#!/usr/bin/env perl'- Shebang设置污点模式?
题
我如何在Perl脚本中设置污点模式
#!/usr/bin/env perl
希邦?
解决方案
您可以在Shebang线上通过Perl5OPT环境变量:
#!/usr/bin/env PERL5OPT=-T perl
这对我来说似乎一切都落后。
另一个选项是,如果您检测到它未打开,则在污点模式下重新执行该脚本:
#!/usr/bin/env perl
warn 'Taint mode is '.(${^TAINT} ? 'on' : 'off'); # For debugging
exec($^X,'-T',$0,@ARGV) unless ${^TAINT};
# do stuff under taint mode here
显然,这是一个主要的创业表现。
其他提示
由于污点模式只能通过 -T
标志,和 env
不会在Shebang线路中接受任何标志,您最好的选择是通过 perl -T script.pl
而不是直接执行脚本。
如果您绝对需要在Shebang中执行污点模式,则可以做一个 taintperl
路径中的某个地方(例如/usr/local/bin),带有以下内容:
#!/bin/sh
/usr/bin/env perl -T
然后在您的perl脚本中
#!/usr/bin/env taintperl
不隶属于 StackOverflow