Подтвердить что ты не робот

Вы человек? (или Как предотвратить спам)

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

alt text

От xkcd

Ответ 3

Для системы CAPTCHA я сердечно рекомендую reCAPTCHA.

Традиционные компьютерные CAPTCHA будут в конечном итоге разбиты путем разработки достаточно интеллектуальной системы. Например, здесь кто-то, который утверждает, что нарушил Google CAPTCHA, ранее считавшийся нерушимым, с 30% -ным коэффициентом хита. reCAPTCHA, по определению, показывает вам только изображения, которые не могут быть распознаны оптическим распознаванием символов.

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

См. здесь для дальнейшего объяснения и попробовать его.

Ответ 5

  • Ограничьте количество голосов на каждый IP-адрес за время
  • Блокировать анонимные прокси.
  • Для голосования: как насчет перетасовки значения, которое должно быть возвращено формой на основе "за сеанс". Когда "1" означает первый элемент, "2" означает второй. Тогда "77" означает первый элемент, "812" означает второй,... может быть простой математикой за сценой, но это мешает пользователям просто отправлять один и тот же HTTP-запрос снова и снова.
  • Что сработало для меня очень хорошо: используйте формы AJAX, а не простые HTTP-формы. Технически это не намного сложнее подделывать голоса, но я написал простое программное обеспечение для блога, и только механизм защиты от спама должен представить комментарии через AJAX - без SPAM до сих пор.

Ответ 6

Я поклонник "скрытого поля" CAPTCHA. Я не помню, где я читал об этом, но идея такова:

  • создайте свою форму как обычно
  • добавьте дополнительное поле, но спрячьте его (т.е. style="display:none" в окружении div или таблицы)
  • после отправки, если поле пустое, выполните соответствующие действия (например, отправьте электронное письмо); если поле было заполнено, то это отправитель робота

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

Ответ 7

Забирайте голоса, как они делают на некоторых телевизионных шоу "талант", и рассылаются спам до самого банка!

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

Ответ 8

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

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

Ответ 11

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

В процессе регистрации, в зависимости от ситуации, я использую optin mail (чтобы завершить регистрацию и подтвердить, что существует хотя бы почтовый ящик) и/или CAPTCHA.

С этого момента вы можете решить, может ли пользователь использовать vonte более одного раза или любое другое правило.

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