Безопасный URL для сброса пароля по электронной почте?

Я создаю веб-сайт php с ограниченным количеством пользователей в любое время (максимум 20). Я потратил довольно много времени на его обеспечение и провел много исследований по этой теме.

Я столкнулся с проблемой при использовании безопасной системы сброса пароля. Я хотел бы использовать наиболее удобный способ - отправить пользователю электронное письмо с URL-адресом, содержащим токен для сброса пароля. Токен привязан к определенному пользователю и действителен только в течение определенного времени. Увы, это не кажется безопасным, поскольку почтовый трафик может быть перехвачен. Я думал о дополнительных проверках токена, таких как ip и браузер (http_user_agent), но это тоже можно обойти.

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

Я заметил, что Facebook, Tumblr и, вероятно, многие другие используют удобный способ отправки электронного письма с URL-адресом без дополнительных вопросов безопасности или чего-то подобного. Учитывая, что безопасность является одним из главных приоритетов этих компаний, как им удается сделать этот процесс безопасным (я так полагаю)? Есть ли какие-то специальные проверки безопасности, которые они проводят? Или утечка электронной почты-трафика-перехвата-безопасности немного преувеличена?

Заранее спасибо.


person Lowie Huyghe    schedule 01.06.2014    source источник
comment
stackoverflow.com/questions/522967/   -  person OhadR    schedule 01.06.2014


Ответы (2)


Я не знаю о facebook и twitter (мне никогда не приходилось сбрасывать пароль), но, по моему опыту, нет ничего действительно безопасного, что можно было бы автоматически и удобно использовать для защиты электронной почты для сброса пароля. Есть 2 случая, когда используется такой адрес электронной почты:

  1. Пользователь забыл свой пароль.
  2. Учетная запись была взломана.

В первом случае электронная почта предназначена только для удобства, и в этом нет реальной необходимости в безопасности. Лучше всего было бы потратить немного времени на использование токена сброса или проверить с помощью cookie, действительно ли вы параноик.

Во втором случае вы должны быть уверены, что письмо получит конечный пользователь, а не злоумышленник. Таким образом, вы предотвратите изменение адреса электронной почты после регистрации, тем самым привязывая безопасность учетной записи к этой учетной записи электронной почты.

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

Единственный другой способ, который был бы более безопасным, - это проверка администратором запроса на сброс пароля, как вы предложили. Это сработает, если у вас действительно мало пользователей, но все равно будет сложно работать каждый день.

person Elwinar    schedule 01.06.2014

можно рассмотреть возможность сброса паролей на основе сеансов, поскольку ссылка для сброса будет недоступна для всех, кто находится за пределами сеанса

person Manjeet Sharma    schedule 01.06.2014