Является ли подтверждение по электронной почте со ссылкой плохой идеей? - PullRequest
8 голосов
/ 01 марта 2011

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

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

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

Ответы [ 7 ]

9 голосов
/ 01 марта 2011

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

Подтверждение электронной почты

Бот может легко «нажимать» на ссылки в любом письме. Копирование и вставка чего-либо было бы немного более раздражающим для автора бота, но не очень. Обычно проверка электронной почты - это проверка электронной почты.

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

Тест Тьюринга

Ответ на вопрос, ответ на который должен знать только человек, будет еще более раздражающим, но, учитывая, что у вас, вероятно, не будет бесконечного числа вопросов, автор бота может перенаправить неизвестный вопрос на реального человека и использовать кэшированные ответы, если любой вопрос повторяется более одного раза. Отвечая на вопрос типа «что такое 12 + 8», как я видел в последнее время на некоторых веб-сайтах, тест Тьюринга совершенно контрпродуктивен, поскольку этот вопрос на самом деле проще для ботов, чем для людей. Вероятно, самым популярным тестом Тьюринга для этого являются капчи, но здесь вы также должны понимать, что их можно обмануть.

Прежде всего, люди демонстрируют способы обхода CAPTCHA, например, см. Доклад Декодирование reCAPTCHA от DEFCON 18. Многие CAPTCHA гораздо проще для расшифровки роботов, поскольку они генерируются алгоритмами, тривиальными для задний ход. Искажения reCAPTCHA также довольно просты, но слова, которые они используют, являются реальными отсканированными словами, которые были трудны для распознавания текста, поэтому в принципе это должно быть намного сложнее для ботов, но это не всегда так.

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

Итог

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

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

3 голосов
/ 01 марта 2011

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

Так что да, боты могут создать учетную запись и использовать ее для регистрации. Если вы хотите остановить ботов, то да, капчу нужно добавить. Обратите внимание, что нет никакого смысла в добавлении кода для копирования / вставки - это легко сделать как для бота, так и не даст вам ничего, кроме капчи.

1 голос
/ 01 марта 2011

Вы проверяете только электронную почту или делаете полную регистрацию?

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

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

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

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

Конечно, это не предотвращает ботов-людей.

DC

Это также означает, что вам не нужно хранить неудачные / неверные регистрационные данные.

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

Когда пользователь отправляет свой адрес электронной почты, данные не сохраняются.совсем.Вместо этого я использую $validation_code = md5(trim($email)+$secret) для генерации кода подтверждения.Таким образом, они не могут изменить адрес электронной почты в фактической форме регистрации.Адрес электронной почты и код подтверждения передаются как скрытое поле до конца для подтверждения адреса электронной почты.если адрес электронной почты будет изменен с подтвержденного, регистрация не будет выполнена, так как md5 больше не совпадает.

DC

1 голос
/ 01 марта 2011

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

  1. Подтверждение электронной почты
  2. Защитный код
  3. Простые случайные вопросы (Сколько ушей / пальцев у большинства людей?)
  4. Номер мобильного телефона, который отправляет код через SMS

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

1 голос
/ 01 марта 2011

Как уже отмечалось, у вас просто есть некоторая проверка CAPTCHA.

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

Ничего плохого в ссылке, если вы это сделаете.

1 голос
/ 01 марта 2011

Как всегда, безопасность и удобство обычно конкурируют друг с другом.

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

CAPTCHA - это всегда способ убедиться, что ваши пользователи - люди.Дополнительное кодирование и разочарования, связанные с ним, являются компромиссом.

В конце, сделайте вещи максимально простыми, но не проще.

0 голосов
/ 27 декабря 2017

Я столкнулся с похожими проблемами при проверке электронной почты и тестированииЕсли вы хотите пройти сквозную проверку электронной почты, попробуйте EmailE2E.com - это бесплатно.

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

Идеально подходит для тестирования Firebase, Amazon Cognito или других поставщиков OAuth, которые используют коды проверки электронной почты при регистрации.Плюс у него есть клиенты на Java и JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...