共计 1014 个字符,预计需要花费 3 分钟才能阅读完成。
Referer防盗链,是基于HTTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用
valid_referers
指令语法
Syntax: valid_referers none | blocked | server_names | string ...;
Default: —
Context: server, location
- none:放行无referes头的请求
- blocked:允许不带schema协议的请求,例如http://或者https://
- server_names:只允许指定ip/名来的请求
valid_referers根据上面三个参数进行过滤,规则匹配则会将变量$invalid_referer
设置为空,否则为1
样例解析
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
if ($invalid_referer) {
return 403;
}
此时该服务可以:
- 浏览器可以直接访问资源链接
- 允许不带schema协议的请求
- 允许referer来自example.com所有子域名访问
- 允许referer来自子域名为example的所有域名
- 允许referer来自www.example.org/galleries/的请求
- 允许referer中存在字符串.google.的请求,表达式会从“http://”或者“https://”之后的文本开始匹配
静态资源防盗链样例
location ~* ^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
valid_referers none blocked *.xadocker.cn *.baidu.com ~\.google\.;
if ($invalid_referer) {
# 可以返回302 链接
# return 302 https://www.xadocker.cn/img/daowolian.jpg;
# 也可直接返回 403
return 403;
break;
}
}
阿里云cdn配置防盗链
一般来讲,博主的项目都会加上cdn,如果此时不防盗链配置,则很容易造成自己平台访问量的丢失,同时又产生大量的cdn流量费用。奉献自己,成就大家 X﹏X
在cdn控制台上可以配置防盗链配置
正文完