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

问题描述 投票:0回答:2

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

例如:

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

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

谢谢。

python operating-system subprocess
2个回答
1
投票

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

import anotherscript

anotherscript.<function>("<user_input>")

1
投票

@ Tenchi2xh的答案是更好的方法,但如果这不起作用(例如你的脚本只适用于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

© www.soinside.com 2019 - 2024. All rights reserved.