Nginx防盗链

294次阅读
没有评论

共计 1014 个字符,预计需要花费 3 分钟才能阅读完成。

Nginx防盗链

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控制台上可以配置防盗链配置

Nginx防盗链

正文完
 
xadocker
版权声明:本站原创文章,由 xadocker 2019-06-25发表,共计1014字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)