How to avoid Shell Injection with a path variable and wait for command exist?
我需要读取命令的退出(然后我必须以同步方式等待它):
1 2 | import subprocess subprocess.call('ls ~', shell=True) |
我的问题是这样一条路:
1 | ~/testing/;xterm;/blabla |
如何清除用户的字符串(允许其语言中的特殊字符)?
1 2 | import subprocess subprocess.call('ls ~/testing/;xterm;/blabla', shell=True) # This will launch xterm |
我在php中找到了escapeshellcmd,但在python中没有找到任何东西。
附言:这不是这个的复制品:
- 因为它是完整的路径,而不是文件名。
- 我读了
os.path ,没有找到解决方案。
事先谢谢!
不受欢迎的=
传递列表而不是字符串。并删除
1 2 3 4 | import os import subprocess subprocess.call(['ls', os.path.expanduser('~') + '/testing/;xterm;/blabla']) |
旁注:如果你想得到文件名列表,最好用
1 | filelist = os.listdir(os.path.expanduser('~') + '/testing/;xterm;/blabla') |