$invalid_referer
Переменная $invalid_referer устанавливается в 1, если referer запроса не разрешён на основании заданных правил доступа.
Описание
Переменная $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;
}
}Убедитесь, что заголовок Referer действительно отправляется клиентами, так как некоторые могут не отправлять его, что приведёт к неожиданному поведению.
Учитывайте последствия использования if внутри блока location, так как это может привести к непредвиденным результатам, если не использовать его осторожно.
Имейте в виду, что заголовки Referer могут быть подделаны; не полагайтесь исключительно на эту переменную при принятии критически важных решений по безопасности.