Referer#
Позволяет блокировать доступ к сайту для запросов с неверными значениями поля «Referer» в заголовке. Следует иметь в виду, что подделать запрос с нужным значением поля «Referer» не составляет большого труда, поэтому цель использования данного модуля заключается не в стопроцентном блокировании подобных запросов, а в блокировании массового потока запросов, сделанных обычными браузерами. Нужно также учитывать, что обычные браузеры могут не передавать поле «Referer» даже для верных запросов.
Пример конфигурации#
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
if ($invalid_referer) {
return 403;
}
Директивы#
referer_hash_bucket_size#
|
|
По умолчанию |
|
server, location |
Задает размер корзины хэш-таблиц со значениями «Referer». Подробнее настройка хэш-таблиц обсуждается отдельно.
referer_hash_max_size#
|
|
По умолчанию |
|
server, location |
Задает максимальный размер хэш-таблиц со значениями «Referer». Подробнее настройка хэш-таблиц обсуждается отдельно.
valid_referers#
|
|
По умолчанию |
— |
server, location |
Задает значения поля «Referer» заголовка запроса, при которых встроенная переменная $invalid_referer будет иметь пустую строку в качестве значения. В противном случае значение переменной равно «1». Поиск совпадения производится без учета регистра символов.
Параметры могут быть следующие:
|
поле «Referer» в заголовке запроса отсутствует; |
|
поле «Referer» в заголовке запроса присутствует, но его значение удалено межсетевым экраном (firewall) или прокси-сервером; к таким значениям относятся строки, не начинающиеся на «http://» или «https://»; |
|
в поле «Referer» заголовка запроса указано одно из имен сервера; |
|
задает имя сервера и необязательное начало URI. В начале или конце имени сервера может быть «*». При проверке порт сервера в поле «Referer» игнорируется; |
|
в начале должен быть символ «~». Необходимо учитывать, что на совпадение с выражением будет проверяться текст, начинающийся после «http://» или «https://». |
Пример:
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
Встроенные переменные#
$invalid_referer
#
Пустая строка, если значение поля «Referer» заголовка запроса считается правильным, иначе «1».