`
85977328
  • 浏览: 1873512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx系列(六)防盗链

 
阅读更多
盗链的定义
    此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。


Nginx的防盗链
一般的防盗链
如下:
        location ~* \.(gif|jpg|png|swf|flv)$ {
            valid_referers none blocked 192.168.56.2 www.163.com;
            if ($invalid_referer) {
              #rewrite ^/ http://192.168.56.2/500.html;
              return 403;
            }
        }

第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行:192.168.56.2 www.163.com
表示对192.168.56.2 www.163.com这2个来路进行判断(主要是根据http协议里的referer)
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回403也是可以的。

验证
写一个页面,放到${nginx_home}/html目录下
<html>
        <body>
[url=cat.jpg]cat.jpg[/url]
        <body>
</html>

上传cat图片文件到${nginx_home}/html目录下
然后修改valid_referers none blocked 192.168.56.2 www.163.com;即可看到结果


NginxHttpAccessKeyModule实现防盗链
配置文件
        location / {
            accesskey             on;
            accesskey_hashmethod  md5;
            accesskey_arg         "key";
            accesskey_signature   "mypass$remote_addr";
            root   html;
            index  index.html index.htm;
        }
如果不怕麻烦,有条件实现的话,推荐使用NginxHttpAccessKeyModule这个东西。

他的运行方式是:如我的download 目录下有一个 file.zip 的文件。对应的URI 是http://192.168.56.2/download/file.zip
使用ngx_http_accesskey_module 模块后http://192.168.56.2/download/file.zip?key=09093abeac094. 只有给定的key值正确了,才能够下载download目录下的file.zip。而且 key 值是根据用户的IP有关的,这样就可以避免被盗链了。

NginxHttpAccessKeyModule现在连迅雷都可以防了,可以尝试一下。

验证
上传cat图片文件到${nginx_home}/html目录下
本机地址为192.168.56.1,md5(mypass192.168.56.1)=38aab68ac44d06eeda43d98de55a1318
直接访问
http://192.168.56.2/cat.jpg返回404
访问
http://192.168.56.2/cat.jpg?key=38aab68ac44d06eeda43d98de55a1318

相关文档:
《Nginx下Discuz!的Rewrite》:http://www.ccvita.com/348.html
《Nginx下WordPress的Rewrite》:http://www.ccvita.com/336.html
《Nginx的Rewrite配置》:http://www.ccvita.com/319.html
《Nginx的防盗链配置》:http://www.ccvita.com/312.html
分享到:
评论

相关推荐

    Nginx配置防盗链的完整步骤

    主要给大家介绍了关于Nginx配置防盗链的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    nginx利用referer指令实现防盗链配置

    nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求,我们应该牢记。下面这篇文章主要介绍了nginx利用referer指令实现防盗链配置的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    Nginx优化与防盗链实践教程

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人IgorSysoev为俄罗斯访问量第二的...

    Nginx学习之如何搭建文件防盗链服务的方法示例

    主要介绍了Nginx学习之如何搭建文件防盗链服务的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    通过lua来配置实现Nginx服务器的防盗链功能

    主要介绍了通过lua来配置实现Nginx服务器的防盗链功能的方法,这里主要讲解生成链接的Nginx配置,需要的朋友可以参考下

    Nginx图片防盗链配置实例

    主要介绍了Nginx图片防盗链配置实例,并对代码做了详细的说明,让你充分理解配置的意图,需要的朋友可以参考下

    配置Nginx的防盗链的操作方法

    •nginx版本1.12.2 一、配置盗链网站 1.启动一台nginx虚拟机,配置两个网站 vim /etc/nginx/conf.d/vhosts.conf 添加以下内容 server { listen 80; server_name site1.test.com; root /var/wwwroot/site1; ...

    详解Nginx防盗链和Nginx访问控制与Nginx解析php的配置

    Nginx防盗链 配置如下,可以和上面的配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names *.test.com ; if ($...

    Nginx服务器下防盗链的方法介绍

    主要介绍了Nginx服务器下防盗链的方法介绍,主要通过修改服务器的配置文件来实现,需要的朋友可以参考下

    SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法

    主要介绍了SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Nginx防盗链.docx

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    centos服务器下nginx图片防盗链设置方法

    防盗链就是禁止其他网站引用自己网站资源而做的一系列设置,优点就不需要说了,绝多数就是防止资源浪费,特别是有宽带、流量限制的空间如果不做一些 限制可能就光引用自己网站图片、视频等等资源可能会消耗很大一...

    Nginx防盗链的配置方法

    处于服务性能的考虑,我们通常把... 如果拓扑图: 超文本传输协议中的Referer作用 Referer:null 表示请求者直接访问 Referer:blocked 一般为防火墙设备添加的 Referer:URL 表示URL中的主机告诉请求者的间接访问 ...

    nginx rewrite重写规则与防盗链配置方法教程详解

    导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面。 nginx rewrite重写规则与防盗链配置方法如下所示: nginx rewite...

Global site tag (gtag.js) - Google Analytics