Spec-Zone.ru › nginx

Модуль ngx_http_referer_module

  • Пример конфигурации
  • Директивы
  • referer_hash_bucket_size
  • referer_hash_max_size
  • valid_referers
  • Встроенные переменные

Модуль ngx_http_referer_module используется для блокирования доступа к сайту для запросов с недопустимыми значениями в поле заголовка «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 size;
По умолчанию: referer_hash_bucket_size 64;
Контекст: server, location

Эта директива появилась в версии 1.0.5.

Устанавливает размер корзины для хеш-таблиц допустимых ссылок. Подробности настройки хеш-таблиц приведены в отдельном документе.

Синтаксис: referer_hash_max_size size;
По умолчанию: referer_hash_max_size 2048;
Контекст: server, location

Устанавливает максимальный size хеш-таблиц допустимых ссылок. Подробности настройки хеш-таблиц приведены в отдельном документе.

Синтаксис: valid_referers none | blocked | server_names | string ...;
По умолчанию: —
Контекст: server, location

Указывает значения поля заголовка запроса «Referer», которые приведут к тому, что встроенная переменная $invalid_referer будет установлена в пустую строку. В противном случае переменная будет установлена в «1». Поиск совпадений не учитывает регистр.

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

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

Пример:

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

Встроенные переменные

$invalid_referer
Пустая строка, если значение поля заголовка запроса «Referer» считается допустимым, в противном случае «1».

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_referer_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API