2

我最近使用 Perlbrew 转换了一个应用程序以使用它自己的 Perl 版本,而不是系统 Perl,我再也不会回到使用系统 Perl 了!

我即将启动一个全新的应用程序,其中所有脚本都将在 TAINT 开启的情况下运行。就像我以前的应用程序一样,新应用程序的库将拒绝在未打开 TAINT 的情况下运行。

我的问题是,我可以安装或修改我自己的私有 Perl,使其默认始终以 TAINT 模式运行吗?

编辑:对不起——我还应该提到我想#!/usr/bin/env perl在我的脚本中使用 shebang 成语,所以定义一个 shell 别名不是一个解决方案。

4

1 回答 1

2

虽然将 perl 修改为始终在启用污染的情况下运行看起来相当简单(未经测试:TAINTING_set(TRUE);在 perl.c 中的命令行开关处理 /case 之后添加),但没有支持的方法来做到这一点。设置 PERL5OPT 环境变量非常接近。请注意,“-T”必须出现在变量值的第一位,并且您尝试在那里设置的任何其他开关都将被忽略。

不过,这一切似乎都过于偏执了。对于可能获得外部输入的脚本,将“-T”放在#!-line 上还不够吗?

于 2014-09-20T11:42:01.313 回答