Что такое эффективный метод запрета пользователей с моего сайта?

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

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

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

Ответы

Ответ 1

В обычном режиме: вы не можете.

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

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

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

Ответ 2

Оба запрета на IP и файлы cookie, как вы говорите, неэффективны.

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

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

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

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

С.

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

Запрет IP

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

Cookies

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