Nginx的防盗链

143 views
Skip to first unread message

DingZhiGang

unread,
Sep 28, 2014, 10:38:33 AM9/28/14
to ustc...@googlegroups.com
一个带有比较多的静态资源(图片,zip文件,mp4等)的站点打算用Nginx来做防盗链,这些静态资源会从移动客户端访问。 

在google/baidu上可以找到比较多的文章,不过基本上都是 类似于 http://blog.csdn.net/yuwenruli/article/details/8541952 的三种。 不知有没有哪位有相关的实际经验的? 哪一种方式实际效果比较好一些?

DingZhiGang

unread,
Sep 30, 2014, 1:08:42 AM9/30/14
to ustc...@googlegroups.com
这个,就这样沉啦?。。。。。

崔灏 (CUI Hao)

unread,
Sep 30, 2014, 1:21:52 AM9/30/14
to LUG@USTC
没搞过,试一试呗。

是限定只能通过特定客户端访问吗?那样的话判断一下UA也可以吧。

这个,就这样沉啦?。。。。。
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en

---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
崔灏 / CUI Hao
Homepage: http://cuihao.tk/
Twitter: @cuihaoleo

DingZhiGang

unread,
Sep 30, 2014, 11:32:27 AM9/30/14
to ustc...@googlegroups.com
都测试过的,基本的防盗链都可以实现的。 不过好像分别都有一些方法可以绕过Web Server的防盗链。这方面没啥经验所以问问是否有人有经验。 UA的话效果不大吧? 比如别人也设置一个相同的UA

Armnotstrong

unread,
Sep 30, 2014, 11:45:42 PM9/30/14
to ustc...@googlegroups.com
========================================
best regards & a nice day
Zhao Ximing

Bojie Li

unread,
Oct 1, 2014, 5:50:54 AM10/1/14
to USTC_LUG
2014-10-01 11:45 GMT+08:00 Armnotstrong <zhaox...@gmail.com>:

张成的这篇文章是在 Referer 不可用的情况下用的吧,如果是普通的图片防盗链,HTTP 头中的 Referer 字段应该就够了吧。 

Zhang Cheng

unread,
Oct 1, 2014, 6:11:03 AM10/1/14
to ustc...@googlegroups.com
看场景和需求了。我们当时是做视频文件的防盗链(m3u8),我们不是很在意有人把播放的url直接贴出去(会上网找一个url来播放的人很少),主要是有一些视频网站的站长只用后台一配大家就都能看了,还有一些甚至有客户端,有客户端的就能随意设置http header了,因此单纯基于http header的防盗链方案都不能用。我的文章里提到的基于序列号的方案(一个序列号在同一时间里只有一个客户端能用),其实也防不了客户端,但可以增加难度,客户端维护者需要分析我们的网页获取序列号的方式,我们甚至可以通过js来在网页里拼出一个序列号,进一步增加盗链难度。

防盗链,首先需要搞清楚,我要防哪些人的盗链,他们有什么样的技术,然后有针对性的去防守。在大多数情况下,referer就够用了。
(sent from a mobile device)

Armnotstrong

unread,
Oct 1, 2014, 6:11:18 AM10/1/14
to ustc...@googlegroups.com
并不是refer不可用,而是看需要把防盗链做到什么程度咯。

我们当时做m3u8的防盗链直接每月省下2G的带宽 一个月就能省将近3w块呢,这还不包括打击潜在的竞争对手带来的收益。
网上的m3u8资源是很稀缺的,一个是带宽成本太大,再有就是版权问题,供需矛盾会导致有一些哥会拼了老命来破解,所以需要把防盗链做复杂。事实上在做了这种“很强”的防盗链逻辑后我们发现绝大多数盗链者已经被干掉了,但是有些网站甚至通过替用户请求一次的方式来拿到我们的key,对于这部分执着的网站感觉他们也挺不容易的,就没咋管。

普通的图片防盗链用refer防止被当做“图床”确实就是够用了,但是防不住别人改refer来冒充(我不是太懂js,但是感觉用js伪造一个refer应该也不是啥太难的事儿,瞎猜的)并且最主要的是防不住别人批量的抓取图片,比如百度的图片甚至做到url只用一次,第二次使用就实效了,目的就是防止别人大规模的抓取。

总之防盗链做到啥程度完全看需求到啥程度。

Armnotstrong

unread,
Oct 1, 2014, 6:11:57 AM10/1/14
to ustc...@googlegroups.com
居然是同时回的...

Bojie Li

unread,
Oct 1, 2014, 6:49:36 AM10/1/14
to USTC_LUG
2014-10-01 18:11 GMT+08:00 Armnotstrong <zhaox...@gmail.com>:
普通的图片防盗链用refer防止被当做“图床”确实就是够用了,但是防不住别人改refer来冒充(我不是太懂js,但是感觉用js伪造一个refer应该也不是啥太难的事儿,瞎猜的)并且最主要的是防不住别人批量的抓取图片,比如百度的图片甚至做到url只用一次,第二次使用就实效了,目的就是防止别人大规模的抓取。

JavaScript 发的 http 请求中即使设置了 referer,也会被浏览器 overwrite 掉,因此在浏览器用 HTML 和 JS 发不出伪造 referer 的请求。

DingZhiGang

unread,
Oct 1, 2014, 9:27:22 AM10/1/14
to ustc...@googlegroups.com
2G的带宽远远不止3W了吧? 

普通的图片防盗链用refer防止被当做“图床”确实就是够用了,但是防不住别人改refer来冒充(我不是太懂js,但是感觉用js伪造一个refer应该也不是啥太难的事儿,瞎猜的)并且最主要的是防不住别人批量的抓取图片,比如百度的图片甚至做到url只用一次,第二次使用就实效了,目的就是防止别人大规模的抓取。

这个的确够强的,不过估计这个需要从提供服务的web server着手才能实现了吧。


2014-10-01 18:11 GMT+08:00 Armnotstrong <zhaox...@gmail.com>:

DingZhiGang

unread,
Oct 1, 2014, 9:31:52 AM10/1/14
to ustc...@googlegroups.com
这个的确是会被overwrite掉的, 而且貌似不仅仅只是浏览器。 之前我在客户端上尝试指定referer,发现设置正常但是怎么都无法起作用,google/baidu都翻了个遍到最后才发现那样指定referer是无效的。不过在浏览器发送请求前利用Firebug等工具手动修改一下的话倒是可以起作用的。

--
Reply all
Reply to author
Forward
0 new messages