Dram

Рейтинг
1114
Регистрация
28.06.2008

нагуглил и проверил (работает) правильнее так

access_log /path/to/access.log combined if=$log;

А не подскажите как теперь в условие добавить чтобы не писало запросы к картинкам, ксс и js ?

Самый дешевый, стоит 3 мес. на 7 сайтах, проблем нет http://www.comodorus.ru/ssl/detal/comodo_ssl/11

Ну к примеру условие упростим до такого

map "$whitelist:$server_protocol" $log {
default 0;
"0:HTTP/1.1" 1;
}

С $log потом что делать?

Все же подумал еще раз - черный список излишен для даного конфига. Единственное чтобы сюда еще прикрутить - это детект тех кто не грузит стили и js

А не знаете как такой фрмат подсетей 5.9.0.0 - 5.9.255.255 всунуть в geo nginx ? Там ведь вроде диапазоны нельзя?

Dimka:
может лучше найти список ip этих ДЦ?

Конечно лучше, но я не смог нарыть даже подсети Хедзнера и OVH хотя бы...

Так как медленные боты бывало быстро запросят пару тройку страниц и затыкаются на пару минут дбавил еще вот что (жирным выделил)

map "$whitelist:$server_protocol" $limit1 {
default "";
"1:HTTP/1.0" "";
"1:HTTP/1.1" "";
"1:HTTP/2.0" "";
"0:HTTP/1.1" "$binary_remote_addr";
}
limit_req_zone $limit1 zone=bot11:20m rate=7r/m;
limit_conn_zone $limit1 zone=addr:10m;

и в хост

limit_conn addr 1;



---------- Добавлено 23.01.2017 в 17:34 ----------

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

Америка, Германия, Нидерланды, Франция.

и условие -

не из белого списка + из черного списка - limit_req_zone

Сегодня активно умирают - Розембаум, Пугачева и Стас Михайлов :)) ищется этот шлак по запросу - "в тяжелом"

Andreyka:
С куками - не вариант.
Делайте отдельный лог для css/js и анализируйте его вместе с полным.

Можете привести пример логики - как его можно анализировать?

Хочу обойтись только Nginx, не хочу добавлять ничего другого.

---------- Добавлено 23.01.2017 в 09:13 ----------

Вот еще вариант защиты, может кому пригодится


map "$whitelist:$request_uri" $bad_location {
default 0;
"0:~*^/+phpmyadmin" 1;
"0:~*^/+myadmin" 1;
}



---------- Добавлено 23.01.2017 в 09:26 ----------

Вот нашел интересный вариант http://www.gofuckbiz.com/showpost.php?p=920742&postcount=41

---------- Добавлено 23.01.2017 в 09:55 ----------

Вопрос - делают ли нормальные браузеры HEAD запросы?

Изменил код вот так, я все же думаю что два нуля были причиной ошибки

map $http_cookie $cookie {
default 1;
~somecookie 2;
}

map "$whitelist:$server_protocol:$cookie" $limit3 {
default "";
"0:HTTP/1.1:1" "$binary_remote_addr";
}
limit_req_zone $limit3 zone=bot_cookie:10m rate=2r/m;

Все вроде работает, боты сводобно ходят по сайту, пособираю статистику пару часов - отпишусь потом.

Добавлено: код работает, проверено. Но! пока в эту ловушку ЧАЩЕ попадают обычные юзеры без кук. Все таки это не выход.

Нужно думать как фильтровать IP которые не запрашивают картинки/ксс/js.

---------- Добавлено 23.01.2017 в 08:52 ----------

Либо, если бы это было возможно, я бы еще добавил лимит на обращений в день с одного IP по протоколу HTTP/1.1 если он не из белого списка. А то пока "медленные" боты проходят мой фильтр.

Всего: 6924