一、常见防盗链解决方案的基本原理
1)、根据HTTP referer,使用URL格式表示是哪里的链接用了当前网页的资源,通过referer可以检测访问的来源网页,如果是资源文件,可以跟踪到显示它的网页地址,一旦检测出来源不是本站,马上进行阻止或返回指定的页面。Http referer是header的一部分,当浏览器向Web服务器发送请求时,一般会带上referer,告诉服务器我是从哪个页面链接过来的,服务器借此获得一些信息用于处理。Apache、Nginx、liGhttpd三者都支持根据Http referer实现防盜链,referer是目前网站图片、附件、html等最常用的防盗链手段。下面是referer防盗链的基本原理图。
2)根据cookie防盗链
对于一些特殊的业务数据,例如流媒体应用通过 ActiveX显示的内容(例如,Fash、 Windows media视频、流媒体的RTSP协议等),因为它们不向服务器提供 referer header,所以若采用上述的 referer的防盗链手段,就达不到想要的效果。
对于 Flash、 Windows media视频这种占用流量较大的业务数据,防盗链是比较困难的,此时可以采用Cookie技术,解决 Flash、 Windowsmedia视频等的防盗链问题。
例如: ActiveX插件不传递 referer,但会传递 Cookie,可以在显示 ActiveX的页面的<head></head>标签内嵌入一段 JavaScript代码,设置"Cookie:Cache=av"如下:
<script> document.cookie="Cache=av;domain=domain.com;path=/";</script>
然后就可以通过各种手段来判断这个Cookie的存在,以及验证其值的操作了。
原文地址:https://www.cnblogs.com/Mr-Ding/p/9611135.html