模块 ngx_http_referer_module
| referer_hash_bucket_size referer_hash_max_size valid_referers 嵌入变量的配置 Directives 示例 |
这ngx_http_referer_modulemodule 用于阻止
访问站点以获取
“Referer” 标头字段。
应该记住,用适当的
“Referer” 字段值非常简单,因此预期的
这个模块的目的不是彻底阻止此类请求,而是阻止
常规浏览器发送的大量请求。
还应考虑到常规浏览器可能会
即使对于有效请求,也不会发送 “Referer” 字段。
示例配置
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
if ($invalid_referer) {
return 403;
}
Directives
| 语法: |
referer_hash_bucket_size |
|---|---|
| 默认值: |
referer_hash_bucket_size 64; |
| 上下文: |
server,location |
该Directives出现在版本 1.0.5 中。
设置有效 referers 哈希表的存储桶大小。 设置哈希表的详细信息在单独的文档中提供。
| 语法: |
referer_hash_max_size |
|---|---|
| 默认值: |
referer_hash_max_size 2048; |
| 上下文: |
server,location |
该Directives出现在版本 1.0.5 中。
设置最大值size的有效 Referers 哈希表。
设置哈希表的详细信息在单独的文档中提供。
| 语法: |
valid_referers
|
|---|---|
| 默认值: | — |
| 上下文: |
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”.