Как я могу предотвратить регистрацию пользователей СПАМА?

У меня есть веб-сайт, который начинает расти, но с ним приходят пользователи, которые продолжают регистрироваться и отправлять СПАМ сообщения другим участникам. В настоящее время я использую службу Google Captcha API, но если пользователь создает учетную запись вручную, это бесполезно. Моя основная проблема заключается в том, что после того, как пользователь создает фальшивую учетную запись, они начинают отправлять повторяющиеся сообщения, поэтому я думаю здесь проверить с помощью некоторого PHP-кода на сходство в сообщениях и отклонить их после отправки x суммы, но я не уверен, насколько это загружает ставит на сервер. Могу ли я получить IP-адрес при регистрации и заблокировать этот IP-адрес, если они начнут рассылать спам. Это сводит меня с ума, потому что я трачу почти час в день на очистку от спама и недействительных пользователей. С этим сталкивались другие и какие меры вы приняли?


person Paul    schedule 01.08.2011    source источник


Ответы (3)


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

Несколько решений:

  • Установить ограничение по времени для отправки сообщений (1 сообщение в 30 или 60 секунд)
  • Используйте функцию PHP similar_text, чтобы сравнить новое сообщение с последним отправленным сообщением. и запретить отправку сообщения, если сходство превышает установленный процент (я бы предположил, что выше 70%)
  • Используйте CAPTCHA, если пользователь отправляет много сообщений в течение установленного времени.
  • Сохраните список IP-адресов ($ _SERVER ['REMOTE_ADDR'] сообщает вам, какой IP-адрес принадлежит пользователю) в своей базе данных пользователей и сохраните список запретов, который вы затем используете для проверки, когда пользователь регистрируется, чтобы не дать им создать учетную запись.
  • Дайте своим пользователям кнопку отчета, которая уведомляет вас о спаме
  • Автоматическая временная блокировка пользователя, если о нем часто сообщают
  • Также ведите список запретов на основе адресов электронной почты пользователей (спамеру требуется больше времени, чтобы создать новый адрес электронной почты (делайте это только с подтвержденными адресами электронной почты, поскольку адреса электронной почты могут быть взломаны)

Это лишь некоторые из доступных вариантов, просто постарайтесь максимально усложнить жизнь спамеру.

person Mervin    schedule 01.08.2011
comment
Спасибо за понимание. Попробую реализовать некоторые из этих идей. - person Paul; 01.08.2011
comment
Будет ли сервером слишком утомительно просматривать последние 10 сообщений, отправленных с помощью функции Similar_text? - person Paul; 01.08.2011
comment
Это зависит от того, какие ресурсы у вас есть (спецификации сервера), я бы лично ограничился двумя последними сообщениями, поскольку 1 из 10 сообщений, более или менее похожих, кажется довольно распространенным явлением. - person Mervin; 01.08.2011
comment
спасибо, я могу попробовать просмотреть последние 5 сообщений, чтобы узнать, не дублируют ли они друг друга. - person Paul; 01.08.2011

Чтобы получить IP-адрес пользователя, используйте

$_SERVER['REMOTE_ADDR'];

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

Я бы порекомендовал поискать подобное решение, если вы часто получаете спам.

person Steve Robbins    schedule 01.08.2011

Единственный метод, использованный для разработки моего WAF, - это анализ трафика:

  • Заголовки HTTP
  • URL запроса, метод, протокол
  • Данные POST
  • GET параметры
  • ПЕЧЕНЬЕ

Даже спустя годы конечный продукт - очень острый нож. Он должен быть подключен к брандмауэру Linux. Я использую Fail2ban.

person Szépe Viktor    schedule 18.04.2018