几乎所有的图片防盗链功能,都是通过判断referer来实现的。通常的规则是,如果referer是本网站的那几个域的url或者referer为空时,则图片正常输出,否则给出一个出错图片。
知道原理了,问题就好解决了--就是伪造一个referer。例如请求一个网易相册图片的时候,总是伪装发送网易相册的referer,而不管实际的referer。
本文将介绍在Firefox,Opera,IE这三大浏览器中,遇到提示盗链的图片时,正常浏览该图片的方法。(点击查看图片盗链测试图)
(一)Firefox
Firefox下笔者发现了三种实现方法,本文选择其中两种介绍。
①改变设置法
在地址栏中输入"about:config",回车。然后在下面出现的过滤器一栏输入"network.http.sendRefererHeader",下面只剩了一条显示。
图1
双击该条首选项,出现的对话框内,将整数的值由2改为0。刷新后就能看到图片。
图2
介绍一下首选项各个整数值所代表的含义:
0--从不发送referer信息;
1--当点击超链接时发送referer信息;
2--当点击超链接或加载图片时发送referer信息。(默认值)
如果你采用第一种方法,由于所有发送referrer信息都会被组织,可能会造成一些网站不能正常使用,例如电子邮件站点,图片上传站点以及安全站点等。如果你采用这种方法,你必须不断地更改设置。因为有更为灵活,定制性更高的第二种方法,所以笔者介绍第一种方法让大家学习,并不推荐使用。
②安装扩展法
Firefox扩展RefControl能够实现浏览盗链图片,针对每个防止盗链的网站需要单独添加地址,但是它的好处就是,一次设置,永绝后患,不用像第一种方法那样再改来改去了。RefControl目前已经可以用正体中文显示,相信简体中文也会很快出现。
RefControl的安装页面:https://addons.mozilla.org/en-US/firefox/addon/953
安装扩展,重启Firefox后,打开"工具--RefControl选项",或者双击右下角工具栏图标。
图3
弹出对话框后,点击"新增网站",弹出"RefControl网站属性"对话框。从下图可以了解到有"一般","*","伪装"和"自订"四种动作,及其含义。例如,盗链的图片来自网易相册,就在"网站"一栏中输入其地址"photo.163.com",并将动作设置为"伪装"。
图4
确定保存后,刷新网页,图片立现!
补充其他几个常用的图片站点供参考:
album.sina.com.cn --新浪博客
photo.163.com --163相册
hiphotos.baidu.com --百度相册
更多站点,读者请自己分析。
(二)Opera
Opera中浏览盗链图片也很简单,原理当然和上文Firefox部分的一样。在"工具--快速参数"菜单中(或者直接按"F12"),将"允许进行引用者记录"的勾去除。
刷新,图片再次显现。
图5
和Firefox的第一种方法大致相同的原因,笔者建议只在含有盗链图片的网页中禁止引用者记录,当浏览完成,请再改回原设置。
(三)IE
很遗憾,这个浏览器还不能实现该功能!不过,可以另辟蹊径,使用第三方工具,例如高级防火墙,来禁止referer的发送。
图6
本文虽然介绍了浏览盗链图片的方法,但笔者不建议你引用防止盗链的图片,因为只有你能看到,而其他人是看不到的。