English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> 利用Varnish实现图片防盗链

 

利用Varnish实现图片防盗链

威盾防火墙 2015-02-26

 

Varnish可应用在多方面,并且随着版本的升级,其功能性应用也在不断增加,这里仅介绍几个应用广泛、功能强大的应用实例。由于Varnish的配置格式在前面已经详细介绍过,所以这里只给出相应模块的配置代码,并附上相关的说明。

2.7.1 利用Varnish实现图片防盗链

图片防盗链功能对于大型网站的运维非常重要,各种Web服务器,如Apache和Nginx都可以很容易地实现图片防盗链功能。利用Varnish实现这个功能也非常简单,只需在配置文件的vcl_recv函数内增加如下配置即可。

  1. if (req.http.referer ~ "http://.*") {  
  2.          if (  !(req.http.referer ~ "http://.*ixdba\.net"  
  3.              || req.http.referer ~ "http://.*google\.com"  
  4.              || req.http.referer ~ "http://.*yahoo\.cn"et  
  5.              || req.http.referer ~ "http://.*google\.cn"  
  6.              )) {  
  7.                  set req.http.host = "www.ixdba.net";  
  8.                  set req.url = "/templets/default/images/logo.gif";  
  9.          }  
  10.                        return (lookup);  
  11.          } 

在这段配置中,用了一个内置变量req.http.referer,防盗链就是通过referer来实现的。其实,referer是http header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上一个referer标识,用来告诉服务器请求是从哪个页面链接过来的服务器根据这个标识就可以获取信息来源,进而进行相应的处理。

这段配置的含义为:Varnish服务器对接收或发送的请求进行判断,如果referer标识存在,且referer标识不匹配下面域名列表中的任意一个,就将请求重定向到www.ixdba.net域名下的/templets/default/images/logo.gif图片,而对找到匹配域名的请求执行lookup操作。


相关内容: 最新内容:
利用ADODB.Stream 防盗链[2015-02-25]
流媒体服务器防盗链插件-Auth Plug[2015-02-25]
PHP做好防盗链的基本思想 防盗链的设置方法[2015-02-07]
1.5.3 防盗链配置实例[2015-02-05]
8种网站防止盗链的方法[2015-02-05]
PHP做好防盗链的基本思想 防盗链的设置方法[2015-02-05]
危害企业IT系统最严重的五个安全威胁[2015-02-25]
IP网络安全的基石——IPSec协议(1)[2015-02-25]
PHP 7展望:PHP需要改变什么[2015-02-25]
PHP文件上传的原理及实现[2015-02-25]
PHP文件下载的原理及实现[2015-02-25]
利用ADODB.Stream 防盗链[2015-02-25]