@Mikkkch

Безопасно ли хранить верификационные коды в БД?

Необходима система, в которой такие действия, как: регистрация, сброс пароля и т.д, осуществляются благодаря цифровым шестизначным кодам, которые пользователь получает по SMS и на адрес электронной почты.

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

Не нужно ли код шифровать? Нормально, что его можно читать в чистом виде в БД?
Ведь, если будет взломана БД, то даже учитывая, что все пароли зашифрованы, могут быть активные коды на сброс пароля, которыми можно воспользоваться.

Я видел много решений, в которых код хранится в чистом виде и меня этот момент смущает.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
@galaxy
Ведь, если будет взломана БД, то даже учитывая, что все пароли зашифрованы, могут быть активные коды на сброс пароля, которыми можно воспользоваться.

Странно, снявши голову, плакать по волосам. Если уж у вас взломали БД, так можно и просто пароль поменять пользователю (да и вообще, доступ ко всем данным и так есть).
Если только вы представляете себе какой-то взлом "на полшишечки"... Ну тогда можно зашифровать паролем, хранящимся где-то в настройках приложения.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Вообще-то лучше эти коды в базе не хранить, не потому, что несекурно, а потому, что там они вообще не нужны. Если хочется секурности, то шифруйте по ключу из приложения.
Ну а хранить можно в redis например. Там на ключ можно прописать время жизни (TTL).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы