Perl 内联::Python的不安全依赖关系
在模式下运行时,如何解释此编译时错误消息 在/usr/local/lib/perl/5.14.2/Inline/Python.pm第193行使用-T开关运行时,open中存在不安全的依赖关系 第193行是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 =>
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.50Inline::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可能会将其视为不安全的依赖项。