Я внедряю на своем веб-сайте систему черного списка, которая отслеживает контактные формы на предмет подозрительного использования (как спама, так и чрезмерной частоты).
Когда я нахожу кого-то / робота, который соответствует моим критериям для внесения в черный список, я хочу отправить его в свою БД как объект в черном списке.
Мой вопрос в том, следует ли мне занести их в черный список как IP или как домен?
Насколько я понимаю, занесение IP-адреса в черный список будет гораздо более эффективным, потому что я разрешаю людям вводить свой адрес электронной почты в форму, и они могут легко менять свой домен на регулярной основе.
Однако обратная сторона заключается в том, что если я внесу IP-адрес в черный список, я потенциально могу внести в черный список большую группу людей, которые имеют общий IP-адрес, когда только один человек плохой (например, кампусы колледжей, кафе и т. Д.).
Есть ли решение, которое мне не хватает?
Самый простой способ - ограничить время внесения в черный список.
В первый раз, когда IP-адрес помещается в БД, установите тайм-аут на 3 дня или что-то в этом роде.
При последующих отправках с этого IP:
Я понимаю, что добавляю к этому обсуждению немного поздно, но я пошел дальше этой идеи и подумал, что моя техника может быть полезна другим. Я автоматически блокирую злодеев, но позволяю им разблокировать себя. Таким образом, если общий (или NAT-тированный) IP-адрес заблокирован, это не навсегда. Вот как:
Я установил страницу по умолчанию (созданную по сценарию) в одном или нескольких подкаталогах (папках), заблокированных в robots.txt. Эта страница, если она загружена некорректным роботом или шпионящим человеком, добавляет свой IP-адрес в список заблокированных. Но у меня есть обработчик ошибок 403 («не авторизован»), который перенаправляет эти заблокированные IP-адреса на страницу, объясняющую, что происходит, и содержащую капчу, которую человек может использовать для разблокировки IP. Таким образом, если IP-адрес заблокирован из-за того, что один человек использовал его один раз с плохой целью, следующий человек, который получит этот IP-адрес, не будет заблокирован навсегда - просто это немного неудобно. Конечно, если конкретный IP-адрес продолжает часто повторно блокироваться, я могу предпринять дальнейшие шаги вручную, чтобы решить эту проблему.
Вот логика:
Это оно! Один файл сценария для обработки уведомления о блокировке и разблокировки подачи капчи. Одна запись (минимум) в файле robots.txt. Одно перенаправление 403 в файле htaccess.
Надеюсь, это поможет ... кому-нибудь. У меня это работает очень хорошо. Я использую его на нескольких сайтах.
Хммм ... это зависит от того, какой тип серверной части используется на веб-сайте, например, есть плагин Bad Behavior, который используется в установках Wordpress, который выполняет работу по занесению в черный список. Он обладает гибкостью в том, что вы можете занести в черный список по ip, домену или строке пользовательского агента. Кроме того, мне интересно, а можно ли предположить, что у вас есть капча?
Однозначно забанить IP. Это не решает проблему на 100%, но в каждом домене может быть несколько IP-адресов и, конечно же, некоторые домены, которые вы не хотите запрещать (comcast и т. Д.).
Намного безопаснее делать это на основе IP, и у вас будет то же самое, что и в одной подсети:
192.168.1.10
192.168.1.25
192.168.1.30
Затем вы хотите банить по диапазону:
192.168.1.x
Я бы не стал слишком беспокоиться о блокировке большого количества людей, это обычно довольно широко распространено, и вы все равно найдете большинство ваших спамеров из одной или двух стран Восточной Европы.
Ну, я думаю, под доменом вы имеете в виду занесение адреса электронной почты в черный список? поскольку занесение всего домена в черный список может удержать НАМНОГО больше пользователей, чем занесение в черный список ip.
Думаю, я бы пошел с IP, хотя я думаю, что вы обращаетесь к этому не с того места.
Чтобы роботы / спам-боты не публиковали сообщения, используйте капчу, например рекапча неплохо (и с его помощью вы помогаете оцифровывать старые книги).
Чтобы не допустить плохих пользователей, IP-адрес можно довольно легко изменить, так как у большинства людей нет фиксированного IP-адреса (фиксированный IP-адрес обычно стоит дополнительно), поэтому они просто подключаются повторно и готовы к работе, пока вы их снова не заметите. На самом деле довольно сложно удержать «злых» пользователей подальше, хотя уловка, похоже, заключается в том, чтобы не дать забаненному пользователю знать, что он забанен, поэтому пусть контактная форма ведет себя так, как если бы они не были, чтобы они дольше разобраться и сменить имейл / ip. Но да, зачем или / или если вы могли бы запретить их IP ТАКЖЕ в качестве адреса электронной почты?