Ответ
Валидация данных — это процесс проверки входных или выходных данных на соответствие заданным критериям, правилам и форматам перед их дальнейшей обработкой или использованием. Ее цель — обеспечить корректность, безопасность и целостность данных в системе.
Пример валидации email на Python:
import re
def validate_email(email: str) -> bool:
"""Проверяет, соответствует ли строка базовому формату email."""
# Регулярное выражение для проверки формата
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$'
return re.match(pattern, email) is not None
# Тесты
print(validate_email("user@example.com")) # True - валидный email
print(validate_email("invalid-email")) # False - неверный формат
print(validate_email("user@.com")) # False - отсутствует домен
Основные типы валидации:
| Тип | Где выполняется | Цель | Пример |
|---|---|---|---|
| Клиентская (Frontend) | В браузере (JavaScript) | Быстрая обратная связь пользователю, снижение нагрузки на сервер. | Проверка обязательных полей формы до отправки. |
| Серверная (Backend) | На сервере (Python, Java, etc.) | Гарантия безопасности и корректности, так как клиентскую проверку можно обойти. | Проверка логина/пароля, санитизация входных данных от SQL-инъекций. |
Виды проверок по содержанию:
- Синтаксическая валидация: Проверка формата (email, телефон, дата).
- Семантическая валидация: Проверка логической корректности (дата рождения не в будущем, возраст >= 18).
- Валидация бизнес-правил: Проверка на соответствие доменным ограничениям (достаточно ли средств на счету для перевода).
Зачем это нужно? Без валидации приложение уязвимо к ошибкам, некорректному поведению и серьезным угрозам безопасности, таким как инъекции или повреждение данных.