NginxБорьба с ботами, маскирующимися под Googlebot

[sponsor=/4gr/mesto_120x20.png] О популярном сервере для высокопосещаемых ресурсов Nginx
Ответить Пред. темаСлед. тема
Витюша-начинающий
Борьба с ботами, маскирующимися под Googlebot

Сообщение Витюша-начинающий » 12 окт 2015, 08:51

Здравствуйте!
Хочу поделиться своим опытом борьбы со спам-ботами, маскирующимися под Гугл-бот.
Не знаю, что они хотели на моём сайте, но нагрузку оказывали впечатляющую. Было их примерно 2 тысячи, запрашивали ежесекундно десятки страниц и пытались отправить почту на разные адреса.
Решил их отсечь с помощью Nginx.
Нужно было определить, что user-agent написано Googlebot, и что его IP к Google не имеет отношения (из просмотра логов, я понял, что настоящий Googlebot приходит только с 66.249.64.0/19)
Итак, вот, что получилось. Это добавил в конфиг своего сайта:

Код: Выделить всё

	set $notbot "";

	if ($remote_addr !~ "66\.249\.[0-9]{1,3}\.[0-9]{1,3}") {
		set $notbot 1;
	}
	
	if ($http_user_agent ~* "Googlebot") {
		set $notbot 1$notbot;
	}

	if ($notbot ~ "11") { return 403; }
Т.к. Nginx не поддерживает вложенных условий, пришлось сделать что-то типа флажков.

Надеюсь моё опыт кому-то поможет. А может кто-то сделает лучше, буду только рад обмену решениями!

Реклама
Витюша-начинающий
Re: Борьба с ботами, маскирующимися под Googlebot

Сообщение Витюша-начинающий » 12 окт 2015, 09:11

Забыл сказать, что проверить работу такой защиты можно , например, при помощи браузера FireFox с включенным дополнением User Agent Changer. Там как раз есть возможность указывать в User Agent Googlebot 2.1. Если вы его выберите, и всё сработает правильно, то при открытии своего сайта получите
403 Forbidden

Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.