Автоматический вход в систему с электронной почты клиента


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

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

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

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

Мысли?

ОБНОВЛЕНИЕ: Только что заметил, что Quora выполняет автологин из электронных писем с уведомлениями о комментариях.

 8
Author: kalenjordan, 2013-05-28

2 answers

  1. Сохраните IP-адрес и/или агента пользователя, использованные при последнем размещении заказа или посещении клиентом, и сделайте ссылку работающей только с этим IP-адресом или агентом пользователя.
  2. Сделайте так, чтобы ссылка работала только один раз.
  3. Требуется действительно простая промежуточная аутентификация, например "Чтобы подтвердить, что вы Джейн Доу, пожалуйста, введите свой почтовый индекс:"
 11
Author: ColinM, 2013-05-28 14:56:18

Я думаю, что не рекомендовал бы такую функцию...

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

  • Используйте логин на основе токенов, напримерhttp://shop.tld/?autologintoken=AABBCCDD

  • Если это только в первый раз, когда клиент входит в систему, ограничьте маркер аутентификации одним входом

  • Сделайте токен уникальным для каждого клиента, а также (что очень важно) не на основе имя пользователя/пароль/адрес/имя/электронная почта/что угодно. Mage_Core_Helper_Data::getrandomstring может вам помочь. Длина 32 должна быть минимальной, я бы сказал. Не используйте что-то вроде md5 (время())!

  • Меняйте токен каждый раз, когда клиент меняет свой пароль

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

  • Не полагайтесь (!!!) на браузер, файлы cookie, IP или что-то еще

 12
Author: thebod, 2013-07-01 19:37:02