Какие должны быть проверки безопасности при создании страницы-обработчика смены пароля?

Смена пароля реализована стандартным образом:

На странице-обработчике определенной заведомо функцией сверяются введенный из post-запроса пароль и хеш из базы данных для текущего пользователя (считаем в рамках вопроса, что id подделать нельзя, поскольку в противном случае профиль пользователя уже можно считать взломанным).

В случае, если проверка прошла успешно, определенной заведомо функцией вычисляется хеш нового пароля и руками (обычным запросом) заносится в БД для текущего пользователя.

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

Например, известно, при загрузке файла на сайт желательно со стороны php-кода провести следующие профилактические проверки:
  • Проверка на домен, с которого происходит загрузка файла;
  • Проверка на сессию пользователя;
  • Главное: проверка на расширение файла (получаем с помощью getimagesize) и принудительное присвоение нужного расширения;
  • Важное: присвоение рандомного имени;
  • etc.


Существует ли аналогичный маст-хэв для смены пароля пользователя при такой постановке вопроса? Ведь по идее новый пароль, каким бы он ни был, пройдет через хеш-функцию и станет обычной строкой.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
Denormalization
@Denormalization
Столько умных слов, просто чтобы спросить "Как реализовать Восстановление/Смену пароля на сайте".
Надо быть проще.

Какая разница что приходит от пользователя, если пароль хешируется?
Правила два:
- Не хранить открытый пароль
- Не использовать быстрые алгоритмы хеширования

Всё.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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