Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 内联::Python的不安全依赖关系_Perl_Taint - Fatal编程技术网

Perl 内联::Python的不安全依赖关系

Perl 内联::Python的不安全依赖关系,perl,taint,Perl,Taint,在模式下运行时,如何解释此编译时错误消息 在/usr/local/lib/perl/5.14.2/Inline/Python.pm第193行使用-T开关运行时,open中存在不安全的依赖关系 第193行是Inline::Python打开$o->{API}{location}的地方,我认为它是“Inline目录” 当然,我已经使用了所需的选项: use constant _INLINE_DIR_ => '/var/myapp/inline'; use Inline Config =>

在模式下运行时,如何解释此编译时错误消息

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

第193行是
Inline::Python
打开
$o->{API}{location}
的地方,我认为它是“Inline目录”

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

use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT         => 1,
                     NO_UNTAINT_WARN => 1,
                     DIRECTORY       => _INLINE_DIR_;
我已经确保
/var/myapp/inline
和其中的所有内容都是每个人都可以写的,显然包括root用户和应用程序在运行时设置为
的用户


同样的脚本在我的计算机上工作没有问题,不管我是否以root用户身份启动它,运行
Inline
0.50
Inline::Python
0.43,但是,当我尝试在使用相同版本的
Inline::Python
Inline

版本0.49或0.55的服务器上运行它时,会出现此错误,因为这在不同的环境中是不同的,我敢打赌,在执行
UNTAINT
config参数请求的步骤之前,
Inline
Inline::Python
正在读取一个环境变量

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

有鉴于此,我会在开始编写脚本时强制清除环境,然后只添加您知道需要的环境变量:

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

当您说/var/myapp/inline可由每个人写入时,实际的权限是什么?如果它是可写的(甚至可能只是组),则Taint可能会将其视为不安全的依赖项。