Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 12.11.2010, 11:37   #1
Профессор
 
Регистрация: 30.08.2010
Сообщений: 689
Репутация: 4887

По умолчанию Блок refferer в Nginx

В общем появилась необходимость блока реферрера на уровне конфига Nginx (в логах он слишком часто встречается в виде refferer http://example.com/page.html и очень похоже на http-флуд). Как правильно его заблокировать, чтобы запросы от него сразу отсекались?
megadimon вне форума   Ответить с цитированием

Реклама
Старый 12.11.2010, 13:43   #2
zexis
Академик
 
Аватар для zexis
 
Регистрация: 09.08.2005
Сообщений: 3,977
Репутация: 765388

По умолчанию Ответ: Блок refferer в Nginx

if ($http_referer ~* "example\.com") {
return 403;
}

Ручной бан через конфиг NGINX не эффективен, так как нужно каждый раз его настраивать вручную.
Реферреры у флудящих ботов могут меняться.
HTTP флуд лучше блокировать с помощью автоматического анализатора логов.
Который будет автоматом обнаруживать и банить те IP, которые флудят.
Могу вам установить отлаженное решение для автоматического бана HTTP флуда интенсивностью примерно до 50 Мбит. И количество флудящих IP одновременно примерно до 3000 IP.
Цена за установку 100$
Аська 169938шесть79

Отзывы
https://searchengines.guru/showthread.php?t=494324

Последний раз редактировалось zexis; 12.11.2010 в 14:00..
zexis вне форума   Ответить с цитированием
Старый 12.11.2010, 13:55   #3
megadimon
Профессор
 
Регистрация: 30.08.2010
Сообщений: 689
Репутация: 4887

ТопикСтартер Ответ: Блок refferer в Nginx

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

Пробовал нечто подобное:

location тут мой сайт {

бла бла бла, стандартный конфиг

valid_referers none blocked тут_реферер_которого_нужно_забанить;

if ($invalid_referer) {
return 403;
}
}

но так на все внутренние страницы сайта тоже получаю 403

megadimon добавил 12.11.2010 в 13:57
да стоит apf и анализатор логов. не спасает.

megadimon добавил 12.11.2010 в 13:58
реферер постоянно один, страница вида http://example.com/page.html, зачем постоянно подстраивать конфиг?

Последний раз редактировалось megadimon; 12.11.2010 в 13:58.. Причина: Добавлено сообщение
megadimon вне форума   Ответить с цитированием
Старый 12.11.2010, 14:09   #4
zexis
Академик
 
Аватар для zexis
 
Регистрация: 09.08.2005
Сообщений: 3,977
Репутация: 765388

По умолчанию Ответ: Блок refferer в Nginx

в дериктиве valid_referers задаются имена сайтов, которым доступ разрешен,
а не тех котого нужно банить.


Вот так нужно банить сайт по реферреру.

if ($http_referer ~* "example\.com") {
return 403;
}

попробуйте еще раз.

Последний раз редактировалось zexis; 12.11.2010 в 14:19..
zexis вне форума   Ответить с цитированием
Старый 12.11.2010, 14:15   #5
megadimon
Профессор
 
Регистрация: 30.08.2010
Сообщений: 689
Репутация: 4887

ТопикСтартер Ответ: Блок refferer в Nginx

а если реферер это ip/страница? Просто блок ипа не спасает.
megadimon вне форума   Ответить с цитированием
Старый 12.11.2010, 14:21   #6
zexis
Академик
 
Аватар для zexis
 
Регистрация: 09.08.2005
Сообщений: 3,977
Репутация: 765388

По умолчанию Ответ: Блок refferer в Nginx

Цитата:
Сообщение от megadimon Посмотреть сообщение
а если реферер это ip/страница? Просто блок ипа не спасает.
Плохо понял ваш вопрос. Может так?

if ($http_referer ~* "11.22.33.44") {
return 403;
}
zexis вне форума   Ответить с цитированием
Старый 12.11.2010, 14:28   #7
megadimon
Профессор
 
Регистрация: 30.08.2010
Сообщений: 689
Репутация: 4887

ТопикСтартер Ответ: Блок refferer в Nginx

Благодарствую, Вы мне очень помогли. В принципе разобрался что к чему
megadimon вне форума   Ответить с цитированием
Ответ



Опции темы

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


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