Персональный
сайт
Игоря
Сысоева


 
english
 
sysoev.ru
 
nginx
 поехали!    
 документация    
 поддержка    
 изменения    
 скачать    
 ссылки    
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
обо мне
для писем
для денег
 

Директивы модуля ngx_http_referer_module

 

15.08.2007

Модуль ngx_http_referer_module позволяет блокировать доступ к сайту с неверными значениями строки "Referer" в заголовке запроса. Следует иметь в виду, что подделать запрос с нужной строкой "Referer" не составляет большого труда, поэтому цель использования данного модуля заключается не в стопроцентном блокировании подобных запросов, а в блокировании массового потока запросов, сделанных обычными браузерами. Нужно также учитывать, что обычные браузеры могут не передавать cтроку "Referer" даже для верных запросов.

Содержание

Пример конфигурации
Директивы
valid_referers

Пример конфигурации

    valid_referers   none  blocked  server_names
                     *.example.com  www.example.info/galleries/
                     ~\.google\. ;

    if ($invalid_referer) {
        return   403;
    }

Директивы


syntax: valid_referers [none|blocked|server_names|строка] ...
default: нет
context: server, location

Директива задаёт значения строки "Referer" в заголовке запроса, при которых встроенная переменная $invalid_referer будет иметь значение 0.

Параметры могут быть следующие:

  • none — строка "Referer" в заголовке запроса отсутствует;
  • blocked — строка "Referer" в заголовке запроса присутствует, но её значение удалено файрволлом или прокси-сервером; к таким строкам относятся строки, неначинающиеся на "http://";
  • server_names — в строке "Referer" в заголовке запроса указано одно из имён сервера;
  • произвольная строка — задаёт имя сервера и необязательное начало URI. В начале или конце имени сервера может быть "*". При проверке порт сервера в строке "Referer" игнорируется.
  • регулярное выражение — в начале должен быть символ "~". Необходимо учитывать, что на совпадение с выражением будет проверяться текст, начинающийся после "http://".

Пример использования:

    valid_referers   none  blocked  server_names
                     *.example.com  example.*  www.example.info/galleries/
                     ~\.google\. ;


(C) Игорь Сысоев
http://sysoev.ru