防盗链原理:
http标准协议中有专门的字段记录referer
1、他可以追溯到请求时从哪个网站链接过来的。
2、来对于资源文件,可以跟踪到包含显示他的网页地址是什么。
因此所有防盗链方法都是基于这个Referer字段
NGINX 防盗链配置
location ~* \.(gif|jpg|png|bmp)$ {
valid_referers none blocked *.alijy.com server_names ~\.google\. ~\.baidu\.;
if ($invalid_referer) {
return 403;
#rewrite ^/ http://www.alijy.com/403.jpg;
}
}
以上所有来至alijy.com和域名中包含google和baidu的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。如果用户直接在浏览器输入你的图片地址,那么图片显示正常,因为它符合none这个规则.