Web安全之盗链

描述

      网站非法调用其它网站的图片、视频、音乐、软件等资源,消耗其它网站的流量,侵犯其它网站的资源,造成其它网站服务器宽带与压力增大,甚至宕机。

 

Apache Web服务器解决方案

1 > http referer方式

      在http协议中,有一个头部字段:referer,表示请求的来源网站,通过检查来源网站是否受信任来回应对应的资源。

      在文件 httpd.conf 配置如下:         

<VirtualHost *:80>

   ... #省略

    RewriteEngine On

    RewriteCond %{HTTP_REFERER} ! ^http://test.com/.*$ [NC]

    RewriteRule .*\.(gif|jpg|swf|png|jpeg|mp4|mp3)$ http://www.test.com/img/nolink.jpg [R,NC]!

</VirtualHost>

 说明:  

    1. http://test.com表示网站的信任站点,多行表示多个信任站点;

    2. gif|jpg|swf|png|jpeg|mp4|mp3表示要保护的防止被盗链的文件的扩展名(以|分开);

    3. http://www.test.com/img/nolink.jpg表示被盗链后的重定向页面或图片,如果是图片则尽量小并说明版权保护;

注意:

    1. 不是所有的浏览器都会设置referer变量,而且referer是可以被伪造或被修改的;

    2. 这种方式只是简单的防护手段,应付一般的盗链也足够了。

 

2 > 使用 cookie + rewrite

    用户访问网站时,提供一个特别的 key => value 保存在用户cookie里,服务器检查用户cookie是否正确设置而区别回应。

    在文件 httpd.conf 配置如下:   

<VirtualHost *:80>

  ... #省略

  RewriteEngine On

  RewriteCond %{HTTP_COOKIE} !^.*(?: key=value).*$ #检查cookie是否正确设定 key = value

  RewriteRule ^.*$ http://test.com/error.html #没有正确设定则重定向到错误页面或版权保护图片

</VirtualHost>

 

Nginx web服务器解决方案

在默认情况下,只需要进行简单的配置即可实现防盗链处理:

location ~* \. (jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$  {

    valid_referers none blocked *.test.org;

    if ($invalid_referer) {

        rewrite ^/ http://www.test.org/img/nolink.jpg;

    }

}

说明

  1. "jpg|gif|png|..." 表示对这些扩展名的资源进行防盗链处理;
  2. ".test.org" 表示这个网站域名可以正常访问;
  3. if {}表示:如果检查不通过,就跳转到rewrite指定的地址,也可以直接通过return返回403错误。

     如果不怕麻烦,推荐使用NginxHttpAccessKeyModule这个东西,它的运行方式是:如果我的download目录下有一个file.zip的文件,对应的URL是http://www.ccvita.com/download/file.zip使用ngx_http_accesskey_module模块后http://www.ccvita.com/download/file.zip?key=09093abeac094,只有给定的key值正确了,才能给下载download目录下的file.zip文件,而且key值是根据用户的IP有关的,这样就可以避免被盗链了。据说NginxHttpAccessKeyModule现在连迅雷都可以防了。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值