$invalid_referer
如果请求的 Referer 根据指定的访问规则不被允许,则 $invalid_referer 变量被设置为 1。 — NGINX Core (HTTP)
$invalid_referer
NGINX Core (HTTP)
说明
在 NGINX 中,$invalid_referer 变量用于指示传入 HTTP 请求的 Referer 头是否根据预定义的访问规则被视为无效。该变量主要与 ngx_http_access_module 关联,该模块允许管理员在配置文件中使用 allow 和 deny 指令设置允许或拒绝的 Referer。每当处理请求时,模块会将 Referer 头与已配置的规则进行比对。如果 Referer 与任何允许的条目都不匹配且符合拒绝条件,则将 $invalid_referer 设置为 1。 该功能在内容安全至关重要的场景中特别有用,例如防止未授权网站滥用资源。该变量在 Referer 无效时通常返回值 1;否则保持未设置,表示 Referer 有效。需要注意的是,Referer 可以被客户端篡改,因此不应仅依赖 Referer 检查来执行安全策略。 通过在 NGINX 配置中基于该变量的值实现条件逻辑,$invalid_referer 可以帮助控制对资源的访问,从而实现细粒度的访问管理和安全机制。
配置示例
location /protected {
valid_referers none blocked example.com;
if ($invalid_referer) {
return 403;
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保客户端确实发送了 Referer 头,因为有些客户端可能选择不发送,这会导致意外行为。
⚠
在 location 块中使用 `if` 时要考虑其影响,因为如果不谨慎使用,可能会产生意想不到的结果。
⚠
注意 Referer 可能被伪造;不要仅依赖此变量来做关键的安全决策。