Модуль 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