|
CMP防盗链的相关讨论 |
威盾防火墙 2015-01-06 |
|
今天讨论一下有关CMP里的防盗链,大家有什么好建议也可以回复讨论
需要防盗链的,一般是音乐存放在自己的服务器 如果被盗链太多,不但影响网站正常运行甚至会导致服务器挂掉,同时还要白白支付高额的流量费用
那么怎样在CMP实施防盗链呢?
CMP是个flash,和浏览器一样,一般使用的是http协议来加载音乐文件(flash还支持rtmp) 所以可以直接使用传统的防盗链软件来加防,但这些软件一般都要购买 也可以自己编写程序做代理,用自己的策略加防,这样可以免费,效果也不错
我们做任何事,都要根据实际情况出发,逐一应对 就像某些人一用网页框架就拿不利于SEO说事一样,肯定是错误的 防盗链也一样,我们到底要防谁,怎么防,都要弄明白,分清楚孰轻孰重
其实盗与防盗,就如同加密与解密一样,是矛盾的两面,都是无法做到绝对的
道高一尺,魔高一丈
所以通常我们说的防盗链,其实主要是这两点:
1,尽量完全的杜绝搜索引擎盗取,比如迅雷,百度等流 这是防盗链最重要的一点,因为一旦被这些引擎发现,那就相当于全天下的人都有可能连接到你的服务器
2,尽量多的阻止恶意盗链,比如某些技术狂热分子或黑客,职业盗链者,同行竞争性小偷站等 这些盗链者一般都有技术跟踪你的所有防盗策略,然后完全模拟出一个有效的环境,进而突破防盗 因此完全阻止是不现实的,只能增加他们的xx难度,让其付出更多的代价,比如使用时间限制,不断变换策略等
防盗误区a:把原始音乐链接地址混淆或加密,甚至隐藏到代码中,最后在页面再用JS等方法解码出来
表面上能防住机器人在页面直接抓取和识别,其实很多浏览器都安装有XX工具栏,它时时刻刻都在监控着你浏览器的请求,被发现一次就够了 同时也只能防住一部分不懂的人,因为你音乐总是要下载到客户端才能听,保存出来还不容易么,比如去浏览器缓存找,用工具抓包等
防盗误区b:仅用http协议header请求头的referer来源地址来做限制
比如:从a请求到b,那么b可以从referer得到请求是从a来,从而判断它可以限制其他地方请求 显然这是一种最简单的策略,但有几个问题:
首先,referer可以随意伪造,不说用专门的组件,一般就随便用一种服务端程序语言,即可轻松实现referer自定义封装再请求,所以referer是不可信的 其次,referer不是每次请求都发送,比如在IE会每次都发送,但Firefox就不一定发送,使用WMP也是没有referer的,尤其IE市场份额越来越少,我们也要考虑,甚至以后的手机端发不发也不一定
所以,我们一般对referer的判断策略都是:有且不符合才判断无效,其他情况都继续 这就是为什么很多时候,使用WMP或Firefox能播放,但IE中不能播放的原因
怎样才是一个比较有效的防盗链方法? 这里提供一个思路,具体代码可以自行实现,如果不懂自然也难以驾驭自己的音乐站,可以略过
1,第一层使用referer进行“有且不符合”判断,发挥referer余热,毕竟速度快 2,第二层使用token机制进行验证
token就是一个验证码,我们一般用MD5之类的散列计算来生成token,长度固定,且具有唯一标识性和不能反编译性 这样我们可以通过一定的规则和方法去生成这个值,最后验证这个值的正确与否即可,一般步骤:
一,生成token,几种方法: 1,根据音乐ID+服务端时间+客户端IP生成,可以自己组合混淆,其中服务端时间可以做过期验证 2,根据音乐ID+某个秘密key值生成,这个key可以放到flash里面 比如放到CMP的插件里,然后加密这个flash使其不能被看到,同时还不定期更换这个key即可
二,传递token,几种途径: 1,通过URL查询参数,这是最通用兼容性最好的方式:
- http://mydomain.com/src_handler.php?id=1&token=6f90e75e930389b52a3cf1d4febd1d82
复制代码
如果做一些rewrite可以有很好的可读性:
- http://mydomain.com/6f90e75e930389b52a3cf1d4febd1d82/1.mp3
复制代码
2,通过cookies传递,相对比较安全,设置生成的token到cookies,每次http请求都会附送当前域cookies 但客户端浏览器必须支持cookies,因为有的时候cookies可以被禁用或者清除
三,验证token: 根据你之前生成token的方法,也生成另一个token,然后与传递过来的token进行比较即可
由此可见token的成败就取决于这些规则和方法的保密性 所以我们需要对每个token要有时间限制,比如一个小时后就自动失效 同时还要不定期更换token的生成规则,即使被xx了,更换后又得花时间去xx 这样才能维持你的防盗链机制处于一个相对安全的级别
所以如果是自己的站,加防的具体规则和方法请不要公开 如果是开发应用系统并公开提供下载的,可以提供多重方案供用户选择,或者让用户可以自定义
只要把握好离资源最近的一关,也就是最后的音乐请求关口,基本能实现绝大部分的防盗链,有效性也是最强的 那些去加密CMP配置,加密CMP列表,甚至改文件名后缀隐藏列表之类的,都是浮云
|
|
相关内容: |
最新内容: |
图片服务的防盗链问题[2015-01-06]
防盗链技术终极解决方案[2015-01-06]
Apache带宽限制和防盗链设置方法[2015-01-06]
1.5.3 防盗链配置实例[2015-01-06]
阿里云OSS 防盗链[2015-01-06]
浅谈如何通过.htaccess设置图片文件防盗链[2015-01-06]
|
图片服务的防盗链问题[2015-01-06]
防盗链技术终极解决方案[2015-01-06]
Apache带宽限制和防盗链设置方法[2015-01-06]
从城管网站遭恶搞看网站如何防止黑客攻击[2015-01-06]
关于win 2003系统的一些常见问题的解答[2015-01-06]
让Win8显示全部文件路径的策略[2015-01-06]
|