Концептуальное моделирование SQL - Может ли пароль быть свойством сущности?

В настоящее время я делаю концептуальную модель для проекта, и одна из моих сущностей - ПОЛЬЗОВАТЕЛЬ. Это ключ userID, а его свойства включают firstName, lastName, emailAdr и userName. После реализации проекта у пользователя будет пароль, который заставляет меня задуматься, стоит ли мне добавлять его в качестве свойства... или это может поставить под угрозу конфиденциальность?

2 ответа

Решение

Концептуально вы должны сохранить пароль для пользователя, поэтому имеет смысл хранить его в пользовательском объекте.

Однако, как указывает @stepio, когда вы смотрите на то, как вы это реализуете, сохранение хеша (на самом деле, надежного безопасного хеша) является хорошим способом сохранить его, чтобы он не был раскрыт в случае компрометации.

С другой стороны, если вы используете ORM, например, для создания экземпляра сущности из таблицы, и у вас есть некоторая обеспокоенность по поводу хэша, проходящего через приложение, вы можете поместить настоящий хеш в отдельную таблицу и сохранить ссылку на это в таблице пользователя. Что-то вроде теневого пароля Unix.

Подумайте о сохранении хешированного пароля вместо простого текста.

Для реализации аутентификации вам просто нужно хэшировать ввод пользователя и проверять хэши.

Другие вопросы по тегам