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

Остановить спам без капчей

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

Что я могу сделать здесь?

4b9b3361

Ответ 1

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

Вы также можете использовать отличный трюк:

<input type="text" id="not_human" name="name" />
<input type="text" name="actual_name" />
<style>
   #not_human { display: none }
</style>

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

Ответ 2

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

Ответ 3

Я объединяю несколько методов, которые пока выглядят довольно успешно:

  • Введите поле ввода с именем email и спрячьте его с помощью CSS display: none. Когда форма отправлена, проверьте, является ли это поле пустой. Боты, как правило, заполняют это ложным адресом электронной почты.

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

  • Затем проверьте, соответствуют ли количество параметров GET таким, как вы ожидали. Если ваше действие формы - POST, а основной URL вашего Страница отправки index.php?p=guestbook&sub=submit, то вы ожидайте 2 параметра GET. Боты пытаются добавить параметры GET, чтобы это проверка завершится неудачей.

  • И, наконец, проверьте, установлен ли HTTP_USER_AGENT, какие боты иногда не задают, и HTTP_REFERER - это URL-адрес страницы вашей формы. Боты иногда просто POST на страницу отправки, вызывающую HTTP_REFERER быть чем-то другим.

Я получил большую часть своей информации из http://www.braemoor.co.uk/software/antispam.shtml и http://www.nogbspam.com/.

Ответ 4

Если вы ищете .NET-решение, Ajax Control Toolkit имеет элемент управления NoBot.

NoBot - это элемент управления, который пытается обеспечить CAPTCHA-подобную защиту бота/спама, не требуя какого-либо взаимодействия с пользователем. NoBot имеет преимущество быть полностью невидимым. NoBot, вероятно, наиболее подходит для сайтов с низким трафиком, где спам в блогах/комментариях является проблемой, и 100% -ная эффективность не требуется.

NoBot использует несколько различных методов борьбы с ботами:

  • Принуждение браузера клиента выполнить настраиваемый расчет JavaScript и проверку результата как часть обратной передачи. (Пример: вычисление может быть простым числовым или может также включать DOM для дополнительной уверенности в том, что браузер задействован)
  • Обеспечение настраиваемой задержки между запросом формы и ее отправкой назад. (Например: человек вряд ли завершит форму менее чем за две секунды).
  • Обеспечение настраиваемого ограничения на количество допустимых запросов на каждый IP-адрес за единицу времени. (Например: человек вряд ли представит ту же форму более пяти раз за одну минуту).

Больше обсуждений и демонстраций на этом blogpost от Jacques-Louis Chereau на NoBot.

<ajaxToolkit:NoBot
  ID="NoBot2"
  runat="server"
  OnGenerateChallengeAndResponse="CustomChallengeResponse"
  ResponseMinimumDelaySeconds="2"
  CutoffWindowSeconds="60"
  CutoffMaximumInstances="5" />

Ответ 5

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

Я бы посмотрел на Akismet.

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

Чтобы сделать это еще дальше, вы можете реализовать "жесткие" и "мягкие" ошибки проверки. Если почтовый адрес не соответствует строке проверки регулярного выражения, то это сложно. Невозможность проверить DNS-записи домена, чтобы гарантировать, что он принимает почту или что почтовый ящик существует, является "мягким" сбоем. Когда вы сталкиваетесь с мягким сбоем, вы можете запросить подтверждение CAPTCHA. Это, мы надеемся, уменьшит количество раз, которое вам нужно было бы нажать для проверки CAPTCHA, потому что, если вы получаете достаточную активность на сайте, действительные люди должны вводить действительные данные хотя бы некоторое время!

Ответ 6

Так как это очень сложно избежать на 100%, я рекомендую прочитать эту статью IBM, опубликованную 2 года назад под названием" Real Web 2.0: Battling Web spam ', где поведение посетителей и рабочий процесс управления анализируются хорошо и лаконично

Веб-спам приходит во многих формах, включая:

  • Статьи о спаме и вандализма на wikis
  • Комментировать спам в Weblogs
  • Спам-сообщения на форумах, трекеры и другие сайты для обсуждения
  • Спайдер Referrer (когда сайты спама притворяются, что направляют пользователей к целевой сайт, в котором перечислены источники)
  • Ложные записи пользователей в социальных сетях

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

Также связан очень интересный "... метод hashcash для сведения к минимуму спама в Вики и, в дополнение к электронной почте."

Ответ 7

Конечно, вы должны выбрать одну вещь Honeypot или BOTCHA.

Ответ 8

Я понимаю, что это довольно старый пост, однако я столкнулся с интересным решением под названием "honey-pot captcha", которое легко реализовать и не требует javascript:

Предоставить скрытое текстовое поле!

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

Чтобы пользователь, у которого устройство чтения с экрана не попало в вашу ловушку, просто наклейте текстовое поле "Если вы человек, оставьте пустым" или что-то в этом влиянии.

Тада! Неинтрузивный спам-блокирование! Вот статья:

http://www.campaignmonitor.com/blog/post/3817/stopping-spambots-with-two-simple-captcha-alternatives

Ответ 9

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

Или покажите некоторые скрытые поля, заполненные JavaScript с такими значениями, как referer и т.д. Проверьте равенство этих полей с теми, которые вы сохранили в сеансе раньше. Если значения пустые, у пользователя нет javascript. Тогда это не будет спамом. Но бот, по крайней мере, заполнит некоторые из них.