Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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
Python 从代码注入以任何方式传递到子流程的参数是否安全?_Python_Subprocess - Fatal编程技术网

Python 从代码注入以任何方式传递到子流程的参数是否安全?

Python 从代码注入以任何方式传递到子流程的参数是否安全?,python,subprocess,Python,Subprocess,从代码注入以任何方式传递到子流程的参数是否安全 我正在构建一个小python程序来做一些电影文件标记。为了方便起见,我使用subprocess.call()将标记信息传递给AtomicParsley(在Windows上)。标签信息是自动检索的在线源。如果某个人将代码放在标记中(即用某种rd术语替换参与者),子流程是否可以安全地执行该操作?这更多的是一个概念性的问题,而不是关于语言细节的问题 subprocess.call使用['AtomicParsley',filename'--tag1',ta

从代码注入以任何方式传递到子流程的参数是否安全

我正在构建一个小python程序来做一些电影文件标记。为了方便起见,我使用subprocess.call()将标记信息传递给AtomicParsley(在Windows上)。标签信息是自动检索的在线源。如果某个人将代码放在标记中(即用某种rd术语替换参与者),子流程是否可以安全地执行该操作?这更多的是一个概念性的问题,而不是关于语言细节的问题


subprocess.call使用['AtomicParsley',filename'--tag1',tag1_info,(…)]执行。由于命令的第一部分保证是AP可执行文件的名称,第二部分保证是有效的文件名,因此我认为metainfo数据库中的任何恶意代码都将作为字符串写入相应的标记(即,参与者的名称为del C:\Windows)。这些似乎是合理的假设吗?

只要您使用参数列表并将
shell
设置为False,是的,参数就不会被代码注入。它们不会被shell解析,因此不受任何代码执行机会的约束


请注意,在Windows上,由于使用了
CreateProcess
调用,使用代码注入的可能性已经降低了。

只要使用参数列表并将
shell
设置为False,则参数不会被代码注入。它们不会被shell解析,因此不受任何代码执行机会的约束


请注意,在Windows上,由于使用了
CreateProcess
调用,使用代码注入的可能性已经降低了。

事实并非如此,它们可能会触发一些错误并导致许多不愉快的事情,子进程可能会有很多安全错误……如果子进程本身存在安全缺陷,则所有赌注都没有。但是如果没有,那么你的python代码就不会打开任何新的。不是真的,它们可能会触发一些错误并导致很多不愉快的事情,子进程可能会有很多安全错误……如果子进程本身有安全缺陷,那么所有的赌注都没有了。但是如果没有,那么您的python代码就没有打开任何新代码。