Командная инъекция (OS Command Injection)

Выполнение произвольных команд ОС через подстановку ввода в системный вызов.

СигнатураOS Command Injection

Командная инъекция возникает, когда приложение передаёт пользовательский ввод в системную оболочку. Через символы вроде ;, && или | злоумышленник может выполнить посторонние команды на сервере.

Как защититься: избегайте вызова shell вообще; передавайте аргументы списком, а не строкой; используйте встроенные функции языка вместо внешних команд; валидируйте ввод по белому списку.

import subprocess

# Опасно: shell=True и склейка строки
name = request.get("host")
subprocess.run("ping " + name, shell=True)  # host: 8.8.8.8; rm -rf /

# Безопасно: аргументы списком, без shell
name = request.get("host")
subprocess.run(["ping", "-c", "1", name], shell=False)
← Все записи: Веб-уязвимости и защита
Поддержать проект