跳到内容

unix-command-wildcard-injection (S609)

源自 flake8-bandit linter。

作用

检查对 subprocess.Popen() 的调用中可能存在的通配符注入。

为什么这不好?

如果通配符匹配到非预期文件,通配符注入可能会导致意外行为。 考虑使用更具体的路径代替。

示例

import subprocess

subprocess.Popen(["chmod", "777", "*.py"], shell=True)

建议改为

import subprocess

subprocess.Popen(["chmod", "777", "main.py"], shell=True)

参考