Dram

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

На уязвимости мне пофиг, я больше страдаю от того что тащат у меня все разные умельцы.

Чтобы спарсить пару сотен тысяч страниц (а у меня их более 200.000).

Вот я и пытаюсь усложнить парсинг до "экономически не выгодно" или "млять там этот дебил такого накрутил, я задолбался уже"

по 3-5 запросов, это на прокси разоришься. + HTTP/2.0 у меня разрешен из небольшого числа стран, а это еще очень сильно сужает возможности использования прокси.

Я же хочу ввести два лимита (в минуту и в час)

+ я все же планирую прикрутить еще пару мулек, по типу бана тех кто не загружает стили, мож еще че-то придумаю.

G0gA:
Идеально, позиция гугла примерно такая: что-то не нравится — идите поболтайте с такими же вебмастерами и успокойтесь.

Только шумиха и массовый позор в СМИ заставят их шевелиться.

Если бы крупные СМИ подняли тему, лавочку быстро бы прикрыли.

Давайте начнем с Хабра.

Да, с кукой не вариант. Либо проверять вообще любую куку (но я так и не смог понять как правильно это записать) либо не использовать это.

У меня еще идея родилась.

HTTP/1.0 - выключен

HTTP/1.1 - лимитирован так что там фиг пролезешь

HTTP/2.0 - тут живые юзеры и сюда же придет нормальный кодер, через пол часика/час, когда поймет что ему мешает парсить ваш сайт. Да он тоже лимитирован, но значительно слабее, чтобы не мешать нормальным людям. И при желании за несколько дней можно вытянуть весь сайт.

Идея вот какая, на протоколе HTTP/2.0 если идет более

15 запросов в минуту + если более 500 в час - юзеру показывать страницу в гуглкапчей.

И пока не пройдет дальше не пускать.

Как это можно реализовать?

Сорее второй вариант - в бан их!

Ну че-то подозрительно сотни (а то и более 1000) запросов на мой скромный сайт от офисного планктона Майкрософта.... за пол дня....

А вот пример - 13.93.82.28 , написано Microsoft Corporation, а рефер такой

Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.8.1) Gecko/20091102 Firefox/3.5.5

Это нормально? Почему не пишет что бот?

еще пример 52.169.88.181, написано Microsoft Corporation, а рефер такой

Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.5) Gecko/2008121622 Slackware/2.6.27-PiP Firefox/3.0

52.164.240.201, написано Microsoft Corporation, а рефер такой

Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)

52.174.145.81, написано Microsoft Corporation, а рефер такой

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.02

О спасибо, просто сервис которым я проверял IP не писал что это MSN, щас внесу их в белый спискок.

По прошествии 8 часов по протоколу 1.1 заблокировано чуть более 1000 запросов (0,3% от всего).

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

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

Важно: просмотрев статистику метрики за последний квартал значительно расширил локацию map $geoip_country_code для протокола HTTP/2.0. Прежде чем пользоваться ей - изучите свою статистику!

Неожиданно для меня 90% мусорного трафика из США. Вот топ ботов на сегодня у меня кол-во запросов / ip


115 52.29.26.11
82 54.172.209.166
78 178.158.247.138
58 5.61.41.104
53 52.166.132.198
51 199.16.157.182
47 52.178.38.104
44 52.178.222.249
44 52.178.222.111
44 52.178.151.184

А я вот еще что придумал. пересобрал nginx с модулем --with-http_geoip_module

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code:$whitelist:$server_protocol $allowed_country {
default no;
"RU:0:HTTP/1.1" yes;
"RU:0:HTTP/2.0" yes;
"RU:1:HTTP/1.0" yes;
"RU:1:HTTP/1.1" yes;
"RU:1:HTTP/2.0" yes;
"US:1:HTTP/1.1" yes;
"US:1:HTTP/2.0" yes;
"UA:0:HTTP/2.0" yes;
"BY:0:HTTP/2.0" yes;
"KZ:0:HTTP/2.0" yes;
}

+ в нужный хост

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

503 ошибку сделал специально ибо у меня лог отдельный идет

~*503:.*(yandexaccessibilitybot|yandexdirect|yandeximages|yahoo|mediapartners-google|yandexbot|googlebot|msnbot|bingbot|mail).* 1;
}

+ еще обший лог для протокола 1,1

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

Сижу просматриваю кто "попался" - очень много разных сканеров из США и Европы (по протоколу 1,1) + совсем немного живых людей.

Вайтлист обновил этим

# opera-mini.net
82.145.216.0/22 1;
107.167.96.0/19 1;
185.26.180.0/23 1;
37.228.104.0/22 1;
82.145.208.0/21 1;
37.228.111.128/26 1;
141.0.14.0/23 1;
82.145.220.0/22 1;
141.0.12.0/23 1;
141.0.8.0/22 1;
G0gA:
Стоит писать?

Конечно стоит и лично я очень прошу Вас это сделать!

Всего: 6924