"Забыли пароль" дросселирование


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

5 5

5 ответов:

При отправке сообщения электронной почты для восстановления запишите время, в которое оно было отправлено. Если есть еще какие-либо/слишком много запросов на восстановление в течение заданного интервала времени (15 минут? 6 часов? день?), распечатайте сообщение и не отправляйте его по электронной почте.

Запрашивать зарегистрированный адрес электронной почты, а не имя пользователя? Это гораздо менее вероятно, чтобы быть известным злоумышленнику.

Кроме того, имейте поле TimeOfLastReset в таблице пользователей и обновляйте его всякий раз, когда вы отправляете электронное письмо. Если CurrentTime-TimeOfLastReset слишком мал, то не отправляйте.

1) Вы должны знать свой адрес электронной почты (а не только имя пользователя) 2) Вы можете сбросить пароль только один раз в промежуток времени 3) чтобы сбросить не работает сразу, вы должны нажать на ссылку в Почте

Не думайте, что он действительно может быть использован спамерами.

Для спамера автоматическое сообщение (с фиксированным содержанием), отправленное пользователю, бесполезно.

Однако вы можете добавить идентификатор сеанса в скрытое поле и проверить его при отправке. Или добавьте в форму скрытое (disply: none) поле с name="message" и пустым значением. И проверьте, если он все еще пуст на форме отправить.

Пусть пользователь одновременно заполнит свое имя пользователя и адрес электронной почты и проверит его.

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