nginx中文文档-ngx_http_referer_module

此页面版本:2016-06-08
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

语法:referer_hash_bucket_size size
默认:referer_hash_bucket_size 64
上下文:server, location
版本:1.0.5+

设置可用的referer哈希表的桶大小。

referer_hash_max_size

语法:referer_hash_max_size size
默认:referer_hash_max_size 2048
上下文:server, location
版本:1.0.5+

设置referer哈希表的最大大小。

valid_referers

语法:valid_referers none | blocked | server_names | string
默认:—
上下文:server, location

设置“Referer”头域用于设置内嵌变量$invalid_referer为一个空字符串。否则变量值设置为“1”,匹配是大小写不敏感的。
参数可以是以下的值:
none
请求头域中没有“Referer”

blocked
请求头域中有“Referer”,但被防火墙或代理服务器删除了,这种值是不以“http://”和“https://”开头的字符串。

server_names
请求头域“Referer”包含任何一个服务器名称。

arbitrary string(任意字符串)
定义一个服务器名称和一个可选的URI前缀。服务器名称可以包含“*”,位于开始或结尾。在检查过程中,服务器端口在“Referer”中会被忽略。

regular expression(正则表达式)
第一个标识为“~”,需要注意的是,正则表达式匹配“http://”和“https://”后面的文本。

例子:

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

内嵌变量


$invalid_referer
如果“Referer”字段的值被认为是合法的,值为空字符串,否则值为“1”。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

请开启浏览器JavaScript