Предотвращение спама

Как остановить ботов на странице, доступной только зарегистрированным пользователям? 90% страниц посещают реальные пользователи, а 10% - боты.

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

Пожалуйста поделитесь своими идеями

Редактировать

Я хочу прояснить этот вопрос

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

Возможное решение

Я только что подумал об одном.

Когда пользователь нажимает кнопку отправки, сервер сгенерирует случайное число (с использованием javascript), которое затем будет использоваться в скрытом поле для проверки.

Как вы думаете, это решение практически применимо?


person Maximus    schedule 11.07.2010    source источник
comment
Что вашим пользователям нравится меньше - капчи или спам?   -  person meagar    schedule 11.07.2010
comment
Это может помочь stackoverflow.com/questions/1577918 /   -  person Mike B    schedule 11.07.2010


Ответы (6)


Мне нравится использовать один трюк: добавлять в свои формы скрытое поле ввода, которое реальный пользователь никогда не увидит и не изменит, но которое бот заполняет вслепую.

Что-то типа

<input name="spam_stopper" value="DO NOT CHANGE THIS" style="display:none;"/>

а затем в коде обработки формы убедитесь, что значение spam_stopper равно «НЕ МЕНЯТЬ ЭТО».

Умный бот может игнорировать отображение: нет, но это маловероятно - хотя многие игнорируют <input type="hidden">, поэтому я бы не стал использовать это ...

person daryn    schedule 11.07.2010
comment
Очень умно, но может конфликтовать с расширениями автозаполнения форм. - person Christian; 11.07.2010
comment
Я использую этот метод, но роботы отправляют скрытые поля при отправке формы. - person Maximus; 13.07.2010
comment
jason4 - вы ХОТИТЕ, что робот отправит поле, так как большинство из них изменит значение. Измененное значение означает, что это не человек. Кристиан - хорошее замечание; Я думаю, что наименование поля чем-то неясным уменьшит вероятность того, что это произойдет, поскольку большинство автозаполнителей форм заполняют только известные поля (например, адрес электронной почты, имя и т. Д.) - person daryn; 13.07.2010

Учитывая, что вы исключили капчу (которая не является на 100% пуленепробиваемой), вам необходимо проверить, что вводят ваши пользователи, и разрешить или запретить их публикации.

Эта задача будет непростой, поэтому я предлагаю обратить ваше внимание на готовые решения, такие как Akismet < / а>.

person Anax    schedule 11.07.2010

Поскольку эти боты не подписываются на robots.txt, вы всегда можете заблокировать их с помощью .htaccess, но это большая работа (необходимо поддерживать черный список), поскольку боты / спамеры часто меняют IP-адреса. Вы также рискуете заблокировать подлинных пользователей.

Вы можете увидеть пример Блокировать плохих ботов.

Это может быть полезно, но часто слишком много работы, чтобы заблокировать их все, например, CAPTCHA или аналогичную систему.

person AlexV    schedule 11.07.2010

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

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

person Lèse majesté    schedule 11.07.2010

Запретить не сортировать спам

person Gennady Vanin Геннадий Вани&    schedule 25.01.2011
comment
Какой смысл искать спам, комментировать и отвечать на 20+ очень старых сообщений без новой полезной информации? - person profitphp; 25.01.2011
comment
А зачем преувеличивать? Я прокомментировал менее 5 старых сообщений, и в целом (с новыми сообщениями) их намного меньше 20. И я считаю, что не включил старую информацию - person Gennady Vanin Геннадий Вани&; 25.01.2011

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

  • Интеллектуальная проверка на стороне сервера: это относится к форме, но, например, в форме связи с нами вы можете фильтровать длинные сообщения или сообщения, включая множество URL-адресов. Или, если вы ожидаете получить электронное письмо, вы можете проверить связь с доменом.

  • Механизм черного списка: помечайте спамеров по IP или фразам в базе данных черного списка. Если вы используете PHP, вам может пригодиться простая библиотека, например Guard.

  • Приманки: это уже упоминалось в принятом ответе

  • Защита на основе времени: проверка времени для публикации запроса составляет более X секунд.

  • Google reCAPTCHA v3 на основе результатов: эта версия полностью переработана по сравнению с предыдущей. one и обнаруживать спам за кадром.

Я написал сообщение В последнее время вы можете найти там более подробную информацию.

person Ehsan    schedule 05.01.2019