Nginx使用http_accesskey_module防盗链,告别referer,告别伪装

Nginx使用http_accesskey_module防盗链,告别referer,告别伪装

传统的防盗链很多是依赖referer,比如apache的rewrite模块,根据规则判断referer,这个方法是可以伪装的,对现在的下载工具没有丝毫效果了。

我们就来说说http_accesskey_module模块的原理,他通过接受到的参数值判断访问是否合法。这里有一套MD5加密算法。前台的网页根据用户的IP产生一个MD5值,后端的WEB SERVER就来判断这个MD5,对的就放行。不对就拒绝。浏览器上直接访问物理文件,是不能打开的。

现在就开始操作:

下载nginx

http://sysoev.ru/nginx/nginx-0.6.35.tar.gz
补丁文件:http://www.ieesee.net:8080/~uingei/nginx-accesskey-2.0.3.diff.bz2
tar -xzvf nginx-0.6.35.tar.gz
cd nginx-0.6.35
bzcat ../nginx-accesskey-2.0.3.diff.bz2 | patch -p1
./configure –with-http_accesskey_module ……
make
make install

如果中途出现:

unused variable `clcf'

报错信息,我是这么解决的,将src/http/modules/ngx_http_accesskey_module.c 的ngx_http_core_loc_conf_t 删除,重新编译。

编译成功后,在主配置文件加入类似下面的代码:

server{ 
.....
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
}

/download 为你下载的目录。

前台php产生的下载路径格式是:

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

这样,当访问没有跟参数时,其他用户打开时,就出现:

nginx,http_accesskey_module

基于客户端IP产生的MD5值,换了IP后就打不开了。这样的方法在nginx只做均衡调度工作时,不起作用的。会提示404错误。

 

转:http://xok.la/2009/03/nginx_http_accesskey_module_referer.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值