Nginx中配置referer进行限制
安全运维–Nginx配置增强安全性
Nginx利用referer判断禁止静态资源被直接访问
1、Nginx Referer模块
nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求。当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。构造Referer的请求很容易实现,所以使用这个模块并不能100%的阻止这些请求。
1 | location /static/ { |
2、valid_referers 指令
语法: valid_referers none | blocked | server_names | string … ;
该指令后面可以接 none blocked server_names string或者是正则表达式
none 代表没有referer
blocked:请求头Referer字段不为空(即存在Referer),但是值被代理或者防火墙删除了,这些值不以“http://”或“https://”开头,通俗点说就是允许“http://”或”https//“以外的请求。
server_names:Referer请求头白名单。
arbitrary string:任意字符串,定义服务器名称或可选的URI前缀,主机名可以使用*号开头或结尾,Referer字段中的服务器端口将被忽略掉。
regular expression:正则表达式,以“~”开头,在“http://”或”https://“之后的文本匹配
nginx会通过查看referer字段和valid_referers后面的referer列表进行匹配,如果匹配到了就invalid_referer字段值为0 否则设置该值为1
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.




