文章目录
1. 什么是防盗链
当我们在自己的网站里引用站外图片时,图片无法正常显示,例如下图:
那么服务器是怎样知道该图片是在站外引用的呢?
再比如,我们在查看一个网站的统计信息时,可以清楚的看到浏览网站的用户是从何处跳转而来的,例如下图:
那么统计时,服务器是如何得知用户从哪儿来到的本网站呢?
这是因为在HTTP协议中,头信息里有一个重要的选项:referer。
referer:代表网页的来源,即上一页的地址,如果是直接在浏览器上输入地址访问网站,则没有referer选项。这也就是为什么服务器知道我们的图片是从哪儿引用的(当图片的referer信息不是本站,就会封杀站外访问链接),也知道我们的客户是从那个网站链接跳转过来的。
2. 如何配置防盗链
问题:我们要如何配置apache服务器,用于图片防盗链?
原理:在web服务器层面,根据HTTP协议的referer头信息来判断。如果是来自站外,则统一重写到一个很小的防盗链提醒图上去。
具体步骤:
- 打开apache重写模块mod_rewrite
- 在需要放到的网站或目录,写
.htaccess
文件,并指定防盗链规则。通过分析referer信息,如果不是来自本站,则重写。
重写规则:
- 是jpeg/jpg/gif/png图片时,重写。
- 当referer头与localhost不匹配时重写。
怎么重写:统一rewrite到某个防盗链图片。
参考视频:https://www.bilibili.com/video/BV1js411g7Fw?p=6