为了安全起见,将os.system替换为os.popen

时间:2019-05-19 21:14:23

标签: python popen python-os

是否可以使用os.popen()获得与os.system类似的结果?我知道os.popen()更为安全,但是我想知道如何能够通过此功能实际运行命令。使用os.system()时,事情可能会变得非常不安全,我希望能够以一种安全的方式访问终端命令。

1 个答案:

答案 0 :(得分:2)

使用Shell执行命令的任何操作都是不安全的,原因显而易见(您不希望有人在您的Shell中运行rm -rf /)。 os.systemos.popen都使用外壳程序。

为了安全起见,请将subprocess模块与shell = False一起使用

无论哪种方式,自Python 2.6以来,这两个函数均已弃用