-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Обоснование изменения минимальной длины поля username с 6 до 10 символов
Контекст
В классе UserInfoModel поле username валидируется через:
@Size(min = 10, max = 300, message = "Username must be above 5 characters")
@NotNull(message = "Username cannot be null")
private String username;Ранее минимальная длина составляла 6 символов, сейчас --- 10. Ниже
представлены основные причины изменения.
Причины изменения
1. Повышение уровня безопасности
Увеличение минимальной длины username усложняет: - перебор возможных
имён пользователей, - подбор существующих учётных записей, - атаки,
основанные на угадывании коротких технических логинов.
Длина ≥10 символов значительно расширяет пространство возможных значений
и снижает вероятность успешного угадывания.
2. Соответствие корпоративным и отраслевым стандартам
Во многих корпоративных системах минимальная длина username составляет
8--12 символов. Требование длины 10 символов выравнивает валидацию с
типичными политиками безопасности и повышает общий уровень устойчивости
системы.
3. Исключение коротких технических или тестовых имён
Минимальная длина 10 предотвращает создание таких имён, как test1,
admin, user01, которые: - выглядят ненадёжно, - могут конфликтовать
с зарезервированными именами, - часто случайно просачиваются в прод.
4. Консистентность данных и улучшение UX
Более длинные username: - обеспечивают лучшую уникальность, - уменьшают
вероятность коллизий, - упрощают поиск и аудит логов.
Если в системе используется отдельное отображаемое имя, то username
фактически служит техническим идентификатором, и увеличение длины ---
логичное решение.
5. Соответствие форматам внешних идентификаторов
Ограничение max = 300 и поддержка длинных строк подразумевают, что
username может быть: - email-подобным адресом, - внешним глобальным
идентификатором, - значением из сторонней системы.
В таких форматах естественная минимальная длина обычно превышает 10
символов.
Последствия изменения
Плюсы: - повышение безопасности, - уменьшение количества
некорректных/тестовых учётных записей, - более надёжные данные.
Риски: - пользователи с короткими username потребуют миграции, -
внешние интеграции должны быть проверены на совместимость.
Заключение
Изменение @Size(min = 6) на @Size(min = 10): - повышает
безопасность, - улучшает качество данных, - соответствует корпоративным
стандартам и текущим требованиям к идентификаторам.
Рекомендуется также: - обновить текст сообщения валидации, -
задокументировать новое правило, - уведомить команды, использующие это
поле.