Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 18.04.2019, 18:23   #1
Кандидат наук
 
Аватар для Nopassw0rd
 
Регистрация: 01.02.2019
Адрес: Куйбышев
Сообщений: 257
Репутация: 3520

По умолчанию Добавление фильтра в conf nginx

Здравствуйте, подскажите, что я неправильно делаю. Пытаюсь отсечь спам запросы через map в nginx, но не срабатывает, в чем моя ошибка?

В секцию http

map $http_user_agent $bad_useragent {
default 0;
"~*Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 1;
}

В секцию server

if ($bad_useragent) {
return 444;
}
Nopassw0rd вне форума   Ответить с цитированием

Реклама
Старый 19.04.2019, 07:32   #2
Dram
Академик
 
Регистрация: 28.06.2008
Сообщений: 6,941
Репутация: 390201

По умолчанию Re: Добавление фильтра в conf nginx

Вот как у меня и все работает

map $http_user_agent $bad_useragent {
default 0;
~*ia_archiver 1;
~*Curl 1;
~*libwww 1;
~*BLEXBot 1;
~*SBooksNet 1;
~*MJ12bot 1;
~*Java 1;
~*NTENTbot 1;
~*GetIntent 1;
~*SemrushBot 1;
~*HybridBot 1;
~*AhrefsBot 1;
~*SeznamBot 1;
~*DeuSu 1;
~*GrapeshotCrawler 1;
~*SentiBot 1;
~*default 1;
~*Virusdie 1;
~*WordPress 1;
~*WhatsApp 1;
~*SeopultContentAnalyzer 1;
~*WinHTTP 1;
~*MauiBot 1;
~*weborama 1;
~*Python 1;
~*Go-http-client 1;
~*VelenPublicWebCrawler 1;
}
Dram вне форума   Ответить с цитированием
Сказали спасибо 2 пользователей:
Старый 19.04.2019, 11:39   #3
Nopassw0rd
Кандидат наук
 
Аватар для Nopassw0rd
 
Регистрация: 01.02.2019
Адрес: Куйбышев
Сообщений: 257
Репутация: 3520

ТопикСтартер Re: Добавление фильтра в conf nginx

Цитата:
Сообщение от Dram Посмотреть сообщение
Вот как у меня и все работает

map $http_user_agent $bad_useragent {
default 0;
~*ia_archiver 1;
}
Спасибо, просто в моем случае мне нужно блокировать именно по указанным параметрам. Если в условии одно слово (как в Вашем случае - наименование бота) - все работает, у меня же несколько слов разделенных пробелами, без кавычек правило будет некорректно, а с кавычками не выполняет требуемое действие.

Последний раз редактировалось Nopassw0rd; 19.04.2019 в 13:37..
Nopassw0rd вне форума   Ответить с цитированием
Старый 19.04.2019, 12:46   #4
hakuna matata
Академик
 
Регистрация: 14.01.2012
Сообщений: 2,001
Репутация: 157348

По умолчанию Re: Добавление фильтра в conf nginx

Код:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 1;
Вот так работает.
hakuna matata вне форума   Ответить с цитированием
Сказали спасибо:
Старый 19.04.2019, 13:36   #5
Nopassw0rd
Кандидат наук
 
Аватар для Nopassw0rd
 
Регистрация: 01.02.2019
Адрес: Куйбышев
Сообщений: 257
Репутация: 3520

ТопикСтартер Re: Добавление фильтра в conf nginx

Цитата:
Сообщение от hakuna matata Посмотреть сообщение
Код:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 1;
Вот так работает.
Спасибо, неужели все так просто, я туда всевозможные регулярки пытался вклеить, чтобы это правило сработало. Теперь посмотрю как сработает.
Nopassw0rd вне форума   Ответить с цитированием
Старый 31.05.2019, 10:47   #6
Nopassw0rd
Кандидат наук
 
Аватар для Nopassw0rd
 
Регистрация: 01.02.2019
Адрес: Куйбышев
Сообщений: 257
Репутация: 3520

ТопикСтартер Re: Добавление фильтра в conf nginx

Еще вопрос к специалистам, предложенная выше в теме конструкция работает, но с некоторыми, непонятными ограничениями или лучше сказать нюансами.
В секции http
map $http_user_agent $bad_useragent {
default 0;
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0" 1;
}
В секции server
if ($bad_useragent) {
return 444;
}
В этом случае, если заход с указанным в правиле useragent по протоколу HTTP/1.1, то все отрабатывает правильно, если же по протоколу HTTP/1.0, с этим же useragent то отдается ответ 200, не могу понять почему? То есть один и тот же ip (с прописанным в правиле ограничением в виде useragent ) обращается к одной и той же странице по разным протоколам и в одном случае он фильтруется на 444, в другом ему отдается ответ 200. Почему существует такой костыль и как его обойти? Нужно, чтобы независимо от того по какому протоколу обращается клиент с указанным в правиле useragent он получал ответ 444.
Nopassw0rd вне форума   Ответить с цитированием
Старый 22.06.2019, 22:51   #7
kreat0r
Аспирант
 
Регистрация: 16.05.2012
Сообщений: 100
Репутация: 9526

По умолчанию Re: Добавление фильтра в conf nginx

Вопрос по боту HybridBot. Давно его забанил по ua, но вот посмотрел логи и вижу, что он опять бродит по серверу прикидываясь добропорядочным юзером. Более 5 тыс. хитов делает. Несущественно, но всё же.
Насколько я понимаю, это рекламный бот. Реклама на сайтах присутствует.
Прибить его наглухо или пусть ползает?

И аналогичный вопрос по другим рекламным ботам, типа weborama-fetcher, GetIntent и т.п.
kreat0r вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны