У меня есть веб-сайт, который начинает расти, но с ним приходят пользователи, которые продолжают регистрироваться и отправлять СПАМ сообщения другим участникам. В настоящее время я использую службу Google Captcha API, но если пользователь создает учетную запись вручную, это бесполезно. Моя основная проблема заключается в том, что после того, как пользователь создает фальшивую учетную запись, они начинают отправлять повторяющиеся сообщения, поэтому я думаю здесь проверить с помощью некоторого PHP-кода на сходство в сообщениях и отклонить их после отправки x суммы, но я не уверен, насколько это загружает ставит на сервер. Могу ли я получить IP-адрес при регистрации и заблокировать этот IP-адрес, если они начнут рассылать спам. Это сводит меня с ума, потому что я трачу почти час в день на очистку от спама и недействительных пользователей. С этим сталкивались другие и какие меры вы приняли?
Как я могу предотвратить регистрацию пользователей СПАМА?
Ответы (3)
Существуют различные решения, но ни одно из них не работает идеально. Лучше всего использовать комбинацию решений.
Несколько решений:
- Установить ограничение по времени для отправки сообщений (1 сообщение в 30 или 60 секунд)
- Используйте функцию PHP similar_text, чтобы сравнить новое сообщение с последним отправленным сообщением. и запретить отправку сообщения, если сходство превышает установленный процент (я бы предположил, что выше 70%)
- Используйте CAPTCHA, если пользователь отправляет много сообщений в течение установленного времени.
- Сохраните список IP-адресов ($ _SERVER ['REMOTE_ADDR'] сообщает вам, какой IP-адрес принадлежит пользователю) в своей базе данных пользователей и сохраните список запретов, который вы затем используете для проверки, когда пользователь регистрируется, чтобы не дать им создать учетную запись.
- Дайте своим пользователям кнопку отчета, которая уведомляет вас о спаме
- Автоматическая временная блокировка пользователя, если о нем часто сообщают
- Также ведите список запретов на основе адресов электронной почты пользователей (спамеру требуется больше времени, чтобы создать новый адрес электронной почты (делайте это только с подтвержденными адресами электронной почты, поскольку адреса электронной почты могут быть взломаны)
Это лишь некоторые из доступных вариантов, просто постарайтесь максимально усложнить жизнь спамеру.
Чтобы получить IP-адрес пользователя, используйте
$_SERVER['REMOTE_ADDR'];
Еще один шаг, который я сделал сверх того, - я подключился к API StopForumSpam, чтобы автоматически заблокировать пользователя, если их IP или адрес электронной почты находится в базе данных спамеров. Намного умнее, чем капча.
Я бы порекомендовал поискать подобное решение, если вы часто получаете спам.
Единственный метод, использованный для разработки моего WAF, - это анализ трафика:
- Заголовки HTTP
- URL запроса, метод, протокол
- Данные POST
- GET параметры
- ПЕЧЕНЬЕ
Даже спустя годы конечный продукт - очень острый нож. Он должен быть подключен к брандмауэру Linux. Я использую Fail2ban.