一、什么是防盗链
1、盗链的概念:盗链是指在自己的页面上展示一些并不在自己服务器上的内容;
获得他人资源服务器的地址,绕过别人的资源展示页面,直接在自己的页面上向用户提供此内容;
常见的是小站盗用大站的图片、音乐、视频、软件等资源
通过盗链的方法减轻自己服务器的负担,因为真实的空间和流量来自别人的服务器;
2、防盗链的概念:防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源连接失败;
二、防盗链的工作原理
工作原理:通过refer或者签名,网站可以检测到目标访问网页的来源网页,如果是资源文件,则可以跟踪到显示他的网页地址。一旦检测出来不是本站即进行阻止或者返回指定的页面;
三、防盗链的实现方法
referer:
1、Nginx模块ngx_http_referer_module用来阻挡来源非法的域名请求;
Nginx指令valid_referers,全局变量$invalid_referer;
valid_referer none|blocked|server_names(信任的地址)|string...;
none:域名为空就是不合法的
blocked:来源头部不为空但是里面的值被代理或者被防火墙删除,这些值不以http/https开头
server_names:来源头部包含当前的server_names;
2、操作实例:
加密签名:
使用第三方模块HttpAccessKeyModule实现Nginx防盗链
accesskey on|off 模块开关
accesskey_hashmethod md5 | sha-1签名加密方式
accesskey_arg GET参数名称
accesskey_signature 加密规则
操作实例: