Валидация ввода

Проверка входных данных на соответствие ожидаемому формату — первый барьер против инъекций.

Сигнатура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
← Все записи: Веб-уязвимости и защита
Поддержать проект