Nginx, ограничение трафика по referer?

Приветствую.


Время от времени возникает проблема с паразитными запросами к сайту такого вида: владелец другого, достаточно высонагруженного сайта размещает у себя iframe с тяжёлым запросом к нашему, следственно, у нас возникает флуд вида «какой-то_IP запрос реферер_негодяя». Да, можно отлавливать такие атаки и блокировать негодяев по реферерам, но это немного на то: нужно свести к минимуму ручное вмешательство.


Кто как борется с таким явлением? Мне видится схема: установить для рефереров не в белом списке (сам сайт) ограничение в запросах в секунду (выбрать действительно аномальное число). Только вот не знаю, как это возможно реализовать. Может у кого иные соображения есть?


P.S. Всё вышесказанное относится к Nginx.
  • Вопрос задан
  • 14333 просмотра
Пригласить эксперта
Ответы на вопрос 3
maxout
@maxout
блокировать все рефереры не от вашего сайта, конечно, не очень хорошо.
решение в лоб:
1. создаёте полный дубль вашего основного location (там где происходит обработка php или что у вас там), называете его как хотите.
2. в этот дубль добавляете единственное отличие — ставите туда limit_req (limit_req_zone настраиваете по вкусу).
3. в секцию server добавляете внутренний(!) редирект на дублированный location если реферер не ваш.
4. profit!
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
if ( $http_referer ~* (^google.com) ){
return 403;
}
Баним реферер google.com (НЕ google.com).

Это вам на всякий случай =) А дальше уже играйтесь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы