PDA

查看完整版本 : 流媒体如何防止盗链


Tony
2004-12-04, 12:59 AM
防止盗链是所有流媒体网站的大问题,小弟试着总结一下:

1.对于很多的免费流媒体服务网站,是依赖广告生存的,盗链简直和偷窃差不多,但是,我们可以在视频里加入广告,这样别人盗链相当于给你做宣传:) REAL 和 WinMedia 都有不错的广告方案
--这个算是釜底抽薪的一招

2.使用没有菜单的弹出式IE窗口,禁止鼠标右键,避免别人察看HTML源代码
--这个的确可以唬住很多人,但是使用OE之类的离线浏览器或者QQ/MyIE之类的多窗口浏览器可以轻松破解这种方式的加密,这个只能作为其他方法的辅助

3.使用javascript/vbs运算来得到 视频的URL ,然后使用工具对 Script 编码,让人难以看懂
--这个的破解的确比上面难了一点,但是客户端的加密始终是靠不住的,别人可不可以看到原始URL只是在于他是否愿意花这个精力而已

4.使用自定义的ActiveX控件封装Media/REAL播放控件,对传入的URL加密,这样通过察看HTML代码是看不到URL了。
--可以在InterNet上使用的ActiveX需要一个签名和许可,需要nK的银子,而且,这种方式逃不过Sniffer工具的法眼,特别是现在有工具加入了对Sniffer的支持(比如hiDownLoad)

上面说的都是防止客户看到流媒体的URL,现在我们换一个思路,让盗链者得到了也没有多少用:

5.使用认证:观看节目需要用户名和密码,定期的更换用户名和密码,在论坛上发布
--这个的确让盗链的网站麻烦多了,但是对正常观看的用户也有影响,而且用户和密码难于管理
--补充:REAL可以把认证信息放在数据库里,这样通过二次开发,可以弥补上面的缺点

6.使用播放器绑定,现在的Real和WinMedia9播放器都有全球唯一的GUID,通过服务端的二次编程,纪录合法用户的信息(通过二次开发,使这个这个纪录过程只有在你的网站的协助下才能完成),只有已经记录的播放器才可以观看节目,这种方式比较适合于计费
--但是这个方式的局限也很大,而且需要二次开发

7.定期变化文件名或者文件路径,或者是服务端口,这个给媒体文件管理带来麻烦(假如手工做这个就更加麻烦了),不过还是有人用的,不适合大型站点

下面的方式都是比较成熟和实用的方法:

8.使用动态URL: URL是不断变化的,每次点播的URL都不同,客户只能从网页上得到URL,使用一次或者一个时间段,比如广东世纪前线:
mmst://218.30.8.11/vod1/movie/miss_du_shi_niang.wmv?str=29b797c438532b1ed8a099dd6a1c7cc2 这个是播放某个节目的url,后面的字符串,要么每次登陆都变化,要么随时间变化,要么一次一个,就算copy了这个URL,换了场景(机器,时间,IP等),也是无法播放
--这个需要服务器端的二次开发:Real/WinMedia都提供了相应的SDK

9.使用cookie,这个可以做到防止盗连和下载,可以因为cookie的局限性,流媒体服务器只能和web在一台机器上(没有测试过,理论上是如此的)

最后:


9.DRM
这个不用多说了,最终的解决之道
WinMediaDRM是免费的(需要公司和个人的电子证书),REAL的也调整了策略,最近大降价,好像对合作伙伴免费了

但是道高一尺,魔高一丈,大家一定还有关于破解和防止破解更好的方法,欢迎大家继续讨论这个话题