与Inline :: Python的不安全依赖

sco*_*ozy 5 perl taint

Inline::Python-T模式下运行时,什么可以解释这个编译时错误消息?

在/usr/local/lib/perl/5.14.2/Inline/Python.pm第193行中使用-T开关运行时打开时的不安全依赖性.

第193行是Inline::Python打开的地方$o->{API}{location},我将其视为"内联目录".

当然,我使用了所需的选项:

use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT         => 1,
                     NO_UNTAINT_WARN => 1,
                     DIRECTORY       => _INLINE_DIR_;
Run Code Online (Sandbox Code Playgroud)

我确保其中的/var/myapp/inline所有内容都是可由每个人编写的,显然包括root和用户setuid在运行时编写的应用程序.

同样的脚本在我的计算机上运行没有问题,无论我是否以root身份启动它,运行Inline0.50 Inline::Python0.43,但是当我尝试在使用相同版本Inline::Python且版本为0.49或0.55的服务器上运行它时,会给我这个错误Inline.

Dan*_*tin 1

由于这在不同的环境中是不同的,所以我敢打赌,在执行配置参数请求的步骤之前,有一个环境变量或者Inline正在读取。Inline::PythonUNTAINT

(与评论相反,我认为文件权限不会导致此消息,只有对命令行参数或环境变量的不安全依赖)

鉴于此,我将通过强制清除环境来启动脚本,然后仅添加您知道需要的环境变量:

%ENV = ();
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';  # Or whatever's appropriate
$ENV{'PYTHONPATH'} = '/usr/local/lib/python';   # Optional, if appropriate
# ... etc ...
Run Code Online (Sandbox Code Playgroud)