Валидация ввода
Проверка входных данных на соответствие ожидаемому формату — первый барьер против инъекций.
Сигнатура
Input validationВалидация ввода — проверка, что данные соответствуют ожидаемому типу, длине, формату и диапазону. Это снижает поверхность для инъекций и логических ошибок. Лучше всего работает подход белого списка (разрешено только то, что явно ожидается).
Как применять: валидируйте на сервере (клиентская проверка — лишь для удобства), используйте схемы (pydantic, JSON Schema), отвергайте, а не «чините» подозрительный ввод. Валидация не заменяет экранирование вывода.
import re
def validate_username(name):
# Белый список: буквы, цифры, подчёркивание, 3-20 символов
if not re.fullmatch(r"[A-Za-z0-9_]{3,20}", name):
raise ValueError("Недопустимое имя пользователя")
return name