Дайте совет как бороться с таким спамом.

123
D
На сайте с 28.06.2008
Offline
1101
#11

Очень жаль, поле для маневров сильно сужается.

Так как много из этих IP российские - геоайпи тут не поможет, можно попробовать посмотреть будут ли попадать эти запросы в лог без куков

Добавьте в секцию http {


geo $whitelist {
default 0;
# ip server
АЙПИ_ВАШЕГО_СЕРВЕРА 1;
# боты google
64.68.80.0/21 1;
64.233.0.0/16 1;
66.102.0.0/20 1;
72.14.192.0/18 1;
209.85.128.0/17 1;
216.239.32.0/19 1;
66.249.0.0/16 1;
104.154.0.0/16 1;
# боты yandex
77.88.0.0/18 1;
87.250.224.0/19 1;
84.201.158.0/24 1;
93.158.0.0/16 1;
95.108.128.0/17 1;
213.180.192.0/19 1;
141.8.0.0/16 1;
130.193.0.0/16 1;
5.255.0.0/16 1;
178.154.0.0/16 1;
37.9.0.0/16 1;
37.140.0.0/16 1;
5.45.207.0/24 1;
# mail.ru
217.69.0.0/16 1;
94.100.0.0/16 1;
95.163.255.0/24 1;
# bingbot-msn
40.77.0.0/16 1;
207.46.0.0/16 1;
65.52.0.0/14 1;
157.55.0.0/16 1;
131.253.0.0/16 1;
# Yahoo
68.180.0.0/16 1;
67.195.0.0/16 1;
69.147.64.0/18 1;
72.30.0.0/16 1;
74.6.0.0/16 1;
63.250.0.0/16 1;
98.139.0.0/16 1;
206.190.34.0/24 1;
# sputnik
5.143.0.0/16 1;
# opera-mini.net
82.145.0.0/16 1;
107.167.96.0/19 1;
185.26.180.0/23 1;
37.228.104.0/22 1;
37.228.111.128/26 1;
141.0.0.0/16 1;
# TelegramBot
149.154.167.0/24 1;
# Applebot
17.142.0.0/24 1;
# боты Rambler
81.19.64.0/19 1;
81.19.78.0/24 1;
# VK
87.240.169.0/24 1;
}


map $http_cookie $cookies {
default 0;
~*(.+) 1;
}
map "$whitelist:$server_protocol:$cookies" $nocookies {
default 0;
"0:HTTP/1.1:0" 1;
}

далее в секцию server {

access_log /var/log/nginx/access.nocookies.log combined if=$nocookies;

И смотрите этот лог. Если все ваши товарищи там - уже можно обрубать.

Лично у меня на 50.000 трафика в этот лог попали вчера 4000 IP, я их глазками посмотрел, пробил вручную несколько десятков - это боты на 99%

Но я их не обрубаю, а при первом же запросе отправляю на гугл капчу (мне мой кодер написал решение на PHP.

Так вот из этих 4000 капчу прошли 21 юзер.

Так же в этом логе практически нет запросов к статике - css, js, которые делают нормальные юзеры, что так же показательно.

2. Вариант - более мягкий.

Сделать 2 лога, 1-й из которых будет собирать все запросы, а второй только к статике. Далее парсим оба лога и тех кто не запрашивает статику - (при условии что они не из подсетей поисковиков) объявляем подозрительными и уже только для них придумываем еще проверку.

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

P.S. введение https +http2 позволяет строить конструкции с учетом протокола и это сразу же обрубает 95% ботов. Все они в подавляющем большинстве лезут по протоколу HTTP/1.1

UA
На сайте с 24.06.2018
Offline
7
#12

У меня тоже боты прут. Причем все сайты забугорные - а боты прут с России в основном.

Я пытался бороться, потом мои силы и терпение иссякли - короче победили боты.

Просто забил на них - пускай сканируют - такое время настало.

Если у меня их куча, а как тогда у людей с большими, серьезными проектами?

Там боты прут как саранча наверное.

I'm not your bitch
D
На сайте с 28.06.2008
Offline
1101
#13
up and down:
У меня тоже боты прут. Причем все сайты забугорные - а боты прут с России в основном.
Я пытался бороться, потом мои силы и терпение иссякли - короче победили боты..

В вашей ситуации вообще очень просто отбиться.

Берете формируете белый список как я показывал выше, далее устанавливаете geoip и подключаете его, указывая страны из которых не хотите видеть трафик

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code:$whitelist:$server_protocol $allowed_country {
default yes;
"DE:0:HTTP/1.1" no;
"NL:0:HTTP/1.1" no;
"FR:0:HTTP/1.1" no;
"CA:0:HTTP/1.1" no;
"US:0:HTTP/1.1" no;
"GB:0:HTTP/1.1" no;
"PL:0:HTTP/1.1" no;
"ES:0:HTTP/1.1" no;
"CN:0:HTTP/1.1" no;
"EG:0:HTTP/1.1" no;
"IN:0:HTTP/1.1" no;
"IT:0:HTTP/1.1" no;
"JP:0:HTTP/1.1" no;
"RO:0:HTTP/1.1" no;
"TW:0:HTTP/1.1" no;
}

И в секцию server { нужного хоста

if ($allowed_country = no) {
return 444;
}

Но повторюсь - у меня http2 и 90% трафика идет по нему, по HTTP/1.1 лезут в основном боты, поэтому мне удобно их отсеивать.

venomius
На сайте с 20.02.2012
Offline
108
#14

Dram, вы собираете статистику и потом через iptables на капчу? Если такие объемов ботов, то наверно ipшников уже не одна сотня тысяч?

D
На сайте с 28.06.2008
Offline
1101
#15

Не вижу смысла засирать аптейблс.

Где я на 100% уверен что бот - отдаю 444 ошибку (просто разрываю соединение, 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;
}

или

map "$whitelist:$server_protocol" $bad_bot {
default 0;
"0:HTTP/1.0" 1;
}

Таким сразу

if ($bad_useragent) {
return 444;
}
if ($bad_bot) {
return 444;
}

остальных торможу через limit_req_zone или отправляю на гугл капчу.

P.S. вот Оптимизайка предлагал еще одно оригинальное решение /ru/forum/958253

если в кратце - блокируются через апсет подсети всех крупных датацентров мира. Ведь 90% мусорного трафика идет как раз с разных серверов (не с домашних компов).

Я юзал его решение почти год - полет был нормальный рекомендую.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#16

Dram, если по правильному - надо отрубать руки по колено тем, кто предлагает создавать вот такие вот белые списки поисковиков в nginx. Потому что списки уже сейчас далеко не полные, а "завтра" они будут еще более не актуальные и несущие больше вреда сайту чем пользы, с таким подходом можно хостить сайт на локалхосте выключенного компа, тогда точно никакие спамеры не зайдут.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
D
На сайте с 28.06.2008
Offline
1101
#17

Пользуюсь этим списком более года - траф только растет. Сайты добавлены в кабинеты вебмастеров гугла и яндекса и ниразу не было сообщений о проблемах сканирования.

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

У меня есть так же отдельный лог для "возможно бот поисковика" - где собираются запросы от подсетей НЕ посиковиков, но с юзерагентом поисковиков.

Их я пока иногда проверяю вручную, и за год нашел еще парочку реальных IP поисковых ботов и добавил в белый список.

А вскоре я автоматизирую этот процесс и вообще не буду туда лазить.

P.S. аа ну все понятно :))) увидел вашу подпись.... мешаю бизнесу да? :)))

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#18

Dram, яндекса у тебя далеко не все подсети. В зависимости от того в какой стране расположен сайт - на него яндекс боты могут ходить из DE NL US стран.

D
На сайте с 28.06.2008
Offline
1101
#19
foxi:
Dram, если по правильному - надо отрубать руки по колено тем, кто предлагает создавать вот такие вот белые списки поисковиков в nginx.

А теперь цитрую ваш же сайт

Техническая суть скрипта: «Белые» боты - это Яндекс, Гугл, Мейл, Бинг - которые уже есть в кофиге (также можно добавлять свох ботов и IP), они без препятствий попадают на сайт и никак не замечают присутствия скрипта автобота. Это сделано согласно официальной документации и рекомендации этих поисковиков:

Т.е вам собирать белые списки можно - а мне руки отрубать? :))))

UA
На сайте с 24.06.2018
Offline
7
#20
Dram:
В вашей ситуации вообще очень просто отбиться.
Берете формируете белый список как я показывал выше, далее устанавливаете geoip и подключаете его, указывая страны из которых не хотите видеть трафик

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

Короче поставил счетчики - statcounter ком

Вообще перестал ботов видеть :)

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий