2017-05-18 28 views
0

我正在使用python 2.7.x 我自動化我的東西,並在那裏我需要從我的python腳本運行到另一個python程序,因爲我使用'os'圖書館。防止我的腳本從os命令注入python

爲e.g:

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

,所以我知道如果有用戶的地方將被轉換爲操作系統命令注入預期的用戶輸入的輸入一些命令,這就是我想要防止在這種情況下什麼。

謝謝。

回答

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