Не вызывайте shell с пользовательским вводом; используйте API без shell (execve с аргументами-массивом), whitelist аргументов, или лучше — уберите необходимость внешнего процесса.
Разбор
- Опасны:
os.system, Runtime.exec со строкой, шаблоны bash.
- Экранирование для shell хрупко — избегайте shell.
- Контейнер без лишних бинарей уменьшает impact.
- Секреты не передавайте в argv, если они светятся в
/proc.
Итог
Command injection закрывают отсутствием shell и жёстким whitelist параметров.