利用 nginx 的第三方模块 ngx_http_accesskey_module 来实现下载文件的防盗链

利用 nginx  的第三方模块  ngx_http_accesskey_module  来实现下载文件的防盗链。

2008-02-20  作者 :amao   同分类文章

description:

比如我的 download  目录下有一个  file.zip  的文件。对应的 URI  http://example.com/download/file.zip

使用ngx_http_accesskey_module   模块后 http://example.com/download/file.zip?key=09093abeac094 只有给定的 key 值正确了,才能够下载  download  目录下的  file.zip

而且 key  值是根据用户的  Ip  有关的,这样就可以避免被盗链了。

 


安装模块方法

下载源文件 nginx-accesskey-2.0.3.tar.gz

解压,然后在编译nginx 的时候加上 :

    ./configure --addon-module=path/to/nginx-accesskey

 

开发者:   OWOX project     http://www.owoxengine.com/

 

 

配置方法

 

需要在nginx 的配置文件里面添加

    location /download {

        accesskey             on;

        accesskey_hashmethod md5;

        accesskey_arg         "key";

        accesskey_signature   "mypass$remote_addr";

    }

 

 

 

语法 :

accesskey [on|off]

默认是off

用 on  开启这个功能。

 

accesskey_arg "string"

默认是key ,就是用于 http://example.com/download/file.zip?key=09093abeac094 里面的 key

如果使用  accesskey_arg "string"

要下载就应该是  http://example.com/download/file.zip?string=09093abeac094

 

accesskey_hashmethod [md5|sha1]

默认是 md5.

这里是选择哈希的类型。随便用哪个都可以。不过在生成下载 uri  的时候需要使用相应的哈希方法。

 

accesskey_signature "string"

默认是 accesskey_signature "$remote_addr"

这里是被签名(哈希)的字符串。

$remote_addr表示用户的 ip

为了很好的防盗链,这里应该给用户ip 加上噪声。让别人无法猜到。

比如accesskey_signature " myPassWord $remote_addr"

 

 

 

 

 

生成下载URI 的方法。

假设   

location /download {

        accesskey             on;

        accesskey_hashmethod md5;

        accesskey_arg         "key";

        accesskey_signature   "mypass$remote_addr";

    }

Php:

http://example.com/download/file.zip?key=<?php echo md5(“mypass “.$_SERVER['REMOTE_ADDR']); ?>

 

 

 

 

参考文献: http://wiki.codemongers.com/NginxHttpAccessKeyModule

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值