Какой эффективный метод для запрета пользователей на моем сайте? - PullRequest
15 голосов
/ 20 января 2010

Я знаю, что многие скрипты обрабатывают запрет IP, запрет диапазона IP и т. Д. Я пытался создать метод, который бы блокировал пользователя как можно лучше. Я придумал:

  • IP-блок
  • Настройка cookie
  • Но если у пользователя есть динамика и он не разрешает использование файлов cookie, это для него мало что даст. Я не хочу блокировать диапазон IP-адресов, потому что большинство моих посетителей приезжают из одного города, и я не хочу блокировать невинных людей.
  • Создание значения хеш-функции для нескольких переменных, приходящих от пользователя (например, браузера и версии и т. Д.) И добавление их в таблицу, в которой хранится список запрещенных пользователей или такие значения.

Спасибо за идеи.

Ответы [ 7 ]

8 голосов
/ 20 января 2010

На простом: вы не можете.

Некоторые пользователи могут заблокировать получение файлов cookie или даже использование прокси-сервера для подделки своего IP-адреса. Вы просто не можете быть уверены, что какой-то пользователь не сможет получить доступ к вашему приложению.

(крайний) вариант - заставить всех ваших законных пользователей установить сертификат клиента и проверить его на стороне сервера, но, как я уже сказал, это экстремальное решение. Я не люблю устанавливать сертификаты только для доступа к какому-либо сайту.

Я предлагаю вам просто отпустить; Когда-нибудь в будущем вашему троллю станет скучно, и он будет искать что-то более полезное в своем времени.

3 голосов
/ 20 января 2010

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

Во-первых, по техническим причинам: часто можно обнаружить шаблоны поведения (например, вы можете запретить слова).

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

3 голосов
/ 20 января 2010

Как вы говорите, запреты по IP и cookie неэффективны.

Если вам нужно заблокировать определенных пользователей, вы можете потребовать от всех пользователей аутентификации с использованием адреса электронной почты - им не нужно вводить пароль - просто сгенерируйте случайный хеш и сохраните его по адресу электронной почты. в таблице базы данных, затем отправьте кликабельный URL с хешем в запросе. Затем при доступе к URL-адресу удалите файл cookie с хешем (и сроком действия в будущем).

Затем каждый раз, когда пользователь получает доступ к сайту, проверяйте файл cookie в базе данных, чтобы узнать, относится ли он к запрещенному адресу электронной почты.

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

И, конечно, относительно легко получить бесплатный адрес электронной почты.

С

1 голос
/ 20 января 2010

То, что вы уже получили, это, вероятно, лучший метод, блокировка IP + блокировщик cookie. На самом деле вы можете сделать гораздо больше, кроме этих двух. (Я знаю, это отстой).

0 голосов
/ 24 октября 2018

Ну, вы можете заблокировать использование VPN на вашем сайте (я думаю, что это форум, если пользователи могут создавать темы), для этой цели vpnblocker.net очень дешев и эффективен ... с блокировкой VPN, запретами IP и блокировка Cookie, вы можете остановить непостоянных спамеров. Если у них статический IP-адрес, они не вернутся.

0 голосов
/ 20 января 2010

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

IP Banning

Лично запрещать IP-адреса следует, если только они не известны как спам-серверы. Запретить IP-адреса обычным пользователям бессмысленно, так как большинство широкополосных IP-адресов не зафиксированы, так что вы можете в конечном итоге забанить кого-то, кто потенциально получит этот IP-адрес.

печенье

Использование файлов cookie может быть полезным способом запрета обычным пользователям, не являющимся ИТ-специалистами, которые не знают, как очистить кэш / файлы cookie браузера, и т. Д. Я был бы удивлен, если бы более 10% веб-пользователей знали, как это сделать это ...

0 голосов
/ 20 января 2010

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

То, что вы могли бы попытаться сделать, - это автоматически обнаружить пользователя через некоторое поведение, которое он демонстрирует, а затем быстро заблокировать его текущий компьютер. Плохое поведение, которое может быть автоматически проверено, может быть отправкой слишком большого количества комментариев или спам-комментариев (вы можете проверить их автоматически, например, используя Mollom), вводя множество неправильных паролей и т. Д.

Другая идея (но это еще более навязчиво) - заблокировать учетную запись пользователя и ограничить создание новых учетных записей (сначала они должны быть подтверждены администраторами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...