小编use*_*543的帖子

Python子进程安全性

我理解为什么如果你有不受信任的输入,使用'shell = True'可能会带来安全风险.但是,我不明白'shell = False'是如何避免同样的风险的.

假设我想允许用户提供他可能输入的输入:var ="rm -rf /"

我的代码可能只是:

subprocess.call(var,shell=True) # bad stuff
Run Code Online (Sandbox Code Playgroud)

或者我可能会这样做:

varParts=var.split()
subprocess.call(varParts,shell=False) # also bad, right?
Run Code Online (Sandbox Code Playgroud)

看起来这个假设是不会像第二个例子那样经历处理输入的麻烦,因此这会/不可能发生?

python subprocess

5
推荐指数
1
解决办法
3206
查看次数

标签 统计

python ×1

subprocess ×1