@anton_myaso

Как грамотнее реализовать автоматическую смену пароля?

Добрый день.
Есть самописная CRM крутящаяся на PHP+MySQL.
БД по факту - несколько в рамках одной системы:
BD_main
BD_office1
BD_offce2
В каждой, кроме main есть табличка USERS со стандартным набором полей, типа ID, Name, pass, mail
Встала необходимость менять пароль раз в месяц всей базе и слать это все на Mail.
Еще фишка в том, что в БД пароли в MD5, письмо на почту, естественно, тупо text без хеширования.
Как лучше это все интегрировать? Есть примеры скриптов?
  • Вопрос задан
  • 2400 просмотров
Решения вопроса 1
Попробуйте несколько вариантов:
  1. Создаем в БД в таблице users столбец "password_expire". При регистрации ставим туда текущую дату+90 дней (либо сколько Вам нужно). Также добавляем столбец "blocked" и ставим всем там значение false. Пишем скрипт, который вытягивает из бд всех юзеров, у которых password_expire равен текущему дню, и ставит им в blocked значение true. Делаем cron этого скрипта, чтобы он запускался раз в сутки. После дополняем скрипт авторизации, чтобы при входе он проверял значение blocked. Если оно true, то кидаем на страницу, где сообщаем о необходимости сменить пароль, и требуем новый пароль. После успешной смены ставим в blocked значение false и в password_expire текущую дату + 90 дней;
  2. Добавляем столбец password_expire в users, где ставим сегодня + 90 дней. Опять пишем обработчик. Если в password_expire текущая дата, то шлем пользователю письмо со ссылкой на страницу смены пароля;
  3. Все те же самые password_expire и blocked, но более гуманно: просто в начале страницы вешаем блок с уведомлением о смене пароля и не убираем до тех пор, пока пароль не будет сменен и, соответственно, blocked не станет false.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg
Любые ответы на любые вопросы
Все очень плохо. Данная система совершенно не безопасна. Пользователь должен просто получать требование сменить пароль сразу после входа в систему со старым паролем. То, что у вас сейчас есть - профанация.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы