Skip to content

Изменение минимального размера username у пользователя #14

@DaniilStepanov

Description

@DaniilStepanov

Обоснование изменения минимальной длины поля 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): - повышает
безопасность, - улучшает качество данных, - соответствует корпоративным
стандартам и текущим требованиям к идентификаторам.

Рекомендуется также: - обновить текст сообщения валидации, -
задокументировать новое правило, - уведомить команды, использующие это
поле.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions