Как безопасно, запустить программу через терминал? Python3
Как безопасно, запустить программу через терминал? Пробовал:
import subprocess, os
filename="какойтофайл"
subprocess.run("gpg -c"+"'"+filename+"'" shell=True, check=True);
os.system("gpg -c"+"'"+filename+"'");
Всё время ругается "синтаксический анализатор" Bandit. Говорит что в команде subprocess.run и os.system есть шел (shell) уязвимость. Как, именно, это устранить? Без этого не как нельзя выпускать продукт.
Ответы (1 шт):
Автор решения: Xander
→ Ссылка
Ну, я с bandit не работал, но из общих соображений могу предположить, что он агрится на то, что вы строчку команды собираете простой конкатенацией (что действительно часто оказывается плохой идеей).
Вместо этого лучше использовать синтаксис передачи аргументов команды отдельными элементами списка:
subprocess.run(["gpg", "-c", filename], shell=True, check=True)
PS: И не надо в питоне пихать точки с запятой после каждой строки.