Предотвращение спама - PullRequest
0 голосов
/ 11 июля 2010

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

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

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

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

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

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

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

Просто у меня в голове есть одна вещь.

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

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

Ответы [ 6 ]

4 голосов
/ 11 июля 2010

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

Что-то вроде

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

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

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

3 голосов
/ 11 июля 2010

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

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

0 голосов
/ 05 января 2019

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

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

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

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

  • Защита на основе времени: проверка времени отправки запроса превышает X секунд

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

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

0 голосов

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

0 голосов
/ 11 июля 2010

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

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

0 голосов
/ 11 июля 2010

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

Вы можете увидеть Block Bad Bots для примера.

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

...