Ограничение электронной почты - PullRequest
0 голосов
/ 14 апреля 2011

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

Ответы [ 2 ]

4 голосов
/ 14 апреля 2011

Конечно. Если вы пишете заявку, все возможно.

Обычный способ сделать это - включить «аутентификатор» в каждую ссылку, которую вы предоставляете приложению. Где, когда мы говорим «аутентификатор», мы имеем в виду «случайные буквы и цифры».

Каждая ссылка, которую вы включаете, может выглядеть так:

<a href="...?auth=ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i">Delete My Account Forever</a>

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

Проблема, конечно, в том, что, если кто-то еще увидит это электронное письмо (в том числе, если бы я переслал его кому-то), он тоже мог щелкнуть ссылку и выдать себя за меня! Вы можете несколько смягчить это, установив ограничение времени действия такого аутентификатора, ограничив его использование только одним конкретным действием (например, «Я позволю вам делать X, но затем, если вы захотите сделать что-то еще, вы Вам нужно будет войти в систему) или другими способами.

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

1 голос
/ 14 апреля 2011

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

http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF

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

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

Но я думаю, что было бы лучше, если бы вы просто предоставили пользователю частично заполненную форму (имеющую только имя пользователя), когда он щелкнул ссылку, так как этот URL мог бы быть переработанили ушел, чтобы умереть, не беспокоясь о мошеннике.

...