$invalid_referer

Переменная $invalid_referer устанавливается в 1, если referer запроса не разрешён на основании заданных правил доступа. — NGINX Core (HTTP)

$invalid_referer NGINX Core (HTTP)

Описание

Переменная $invalid_referer используется в NGINX, чтобы указать, считается ли заголовок referer входящего HTTP-запроса недействительным в соответствии с заранее определёнными правилами доступа. Эта переменная в первую очередь связана с `ngx_http_access_module`, который позволяет администраторам задавать разрешённые или запрещённые referer с помощью директив `allow` и `deny` в конфигурационном файле. Когда запрос обрабатывается, модуль проверяет заголовок `Referer` по отношению к настроенным правилам. Если referer не соответствует ни одной из разрешённых записей и попадает под условие deny, $invalid_referer устанавливается в 1. Эта функциональность особенно полезна в сценариях, где важна безопасность содержимого, например для предотвращения использования ресурсов неавторизованными сайтами. Переменная обычно возвращает значение 1, когда referer неверен; в противном случае она не установлена, что означает корректный referer. Важно учитывать, что referer может быть подделан клиентом, поэтому полагаться только на проверку referer для обеспечения безопасности не следует. Переменная $invalid_referer может помочь контролировать доступ к ресурсам, реализуя условную логику в конфигурации NGINX на основе её значения, что позволяет более тонко управлять доступом и механизмами безопасности.

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

location /protected {
    valid_referers none blocked example.com;
    if ($invalid_referer) {
        return 403;
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Убедитесь, что заголовок Referer действительно отправляется клиентами, так как некоторые могут не отправлять его, что приведёт к неожиданному поведению.

Учитывайте последствия использования `if` внутри блока location, так как это может привести к непредвиденным результатам, если не использовать его осторожно.

Имейте в виду, что заголовки Referer могут быть подделаны; не полагайтесь исключительно на эту переменную при принятии критически важных решений по безопасности.