Вам необходимо подтвердить, что parameter["name"]
безопасен.Лучший способ сделать это - внести в белый список набор значений, которые могут быть предоставлены пользователем.Таким образом, злоумышленник может совершить множество опасных действий с вашим кодом, особенно удаленное выполнение кода.
Пример: злоумышленник отправляет import os\nos.system("rm -rf *") #
для parameter["name"]
(при условии, что ОС Linux, но атака может бытьадаптирован под другие ОС).Ой, вы теряете много данных.
В общем, текущая реализация позволяет злоумышленнику создать веб-оболочку или обратную оболочку, которая позволяет ему выполнять на вашем сервере все, как если бы он был локальным.
Какой формат может принимать ваш parameter["name"]
?Если оно только буквенно-цифровое, то проверка может быть регулярным выражением, которое проверяет, соответствуют ли значения буквенно-цифровому шаблону.Если нет, верните ошибку 400 пользователю.Если допустимо, разрешите выполнение команды.
См. Руководство: Безопасное кодирование: понимание проверки ввода .