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".