防止我的脚本从os命令注入python

时间:2017-05-18 06:57:38

标签: python operating-system subprocess

我正在使用python 2.7.x. 我自动化我的东西,在那里我需要从我的python脚本运行到另一个python程序,因为我正在使用'os'库中的系统函数。

例如:

import os 
os.system("python anotherscript.py --data <USER_INPUT_FROM_MY_SCRIPT_HERE>")

所以我知道是否有任何用户输入一些其他命令来代替预期的用户输入,这些命令将转换为os命令注入,这就是我想要防止的情况。

谢谢。

2 个答案:

答案 0 :(得分:1)

由于您需要从Python运行Python脚本,只需以Python方式导入它并正常调用所需的函数

TOP(1)

答案 1 :(得分:1)

@ Tenchi2xh&#39;的答案是更好的方式来做到这一点,但如果没有按&#39;吨的工作(例如,您的脚本仅适用于Python的2.x和另一只适用于Python 3.x都有)那么你应该使用subprocess模块,将参数作为列表传递:

import subprocess
subprocess.call(['python', 'anotherscript.py', '--data', '<USER INPUT>'])

另请查看subprocess.check_callsubprocess.check_output,了解它们是否更贴近您的需求。

https://docs.python.org/2/library/subprocess.html#subprocess.call