`
wsyandy
  • 浏览: 39714 次
  • 来自: ...
社区版块
存档分类
最新评论

流媒体防盗链防下载

阅读更多

是个千百年来都没有得到彻底解决的问题.我想归根结底还是因为现在的流媒体播放器本身能够得到流文件的地址的原因,所以单纯的在网页上加密地址的做法已经不太可行了,尽管这种方法可以起到一定的作用.比如让你的老板不能下载. 

这里我要介绍的方法是结合了服务器流媒体发布软件的配置,数据库及WEB程序.首先要声明的一点是这篇文章的内容并不全都是我原创的,其中针对rtsp协议的解决思路是由CSDN的朋友wd_6532提供的,而针对mms协议的解决方案则是由我同事和我讨论得出的.现在我们就来看看如何针对不同协议的防盗链防下载的解决方案.

rtsp协议防盗链防下载的解决方案

  1. 数据库的配置.
  2. Helix流媒体发布软件的配置.
  3. WEB程序

思路:通常的情况下,当你打开视频网页时,WEB程序读取数据库得到这个视频的地址,将地址发给你,这时你的流媒体播放器得到这个地址后向流媒体发布软件发出请求,流服务器开始发送数据流,客户端就可以开始播放视频了.现在采取的方法是,当用户打开视频网页时,WEB程序首先读取数据库,得到视频地址,然后用程序随机生成一个用户名和密码,将用户名,密码和发布点存到数据库中,然后将视频地址变成这样的格式:rtsp://UserName@UserPwd:服务器IP/发布点/路径/文件名,将这个地址发给客户端,客户端播放就向流服务器请求这个地址的流媒体,此时就需要Helix从数据库中来验证这个地址是否正确,如果正确,客户端自然就可以观看了,否则不能观看,当用户连接成功后,调用方法将这个用户名和密码从数据库中删除.这样,这个地址就是失效的地址了.

下面来详细说明实现的细节,首先要进行数据库的配置,数据库在这里起到的作用很简单,无非就是判断请求中的用户,密码及发布点是否是存在数据库中的正确的值.所以这里要做的就是在Helix的安装目录中如D:\Program Files\Real\Helix Server\Commerce\database\odbc\mssql中找到ppvdemo.sql,在查询分析器中运行就可以建立了.在运行过程中会提示一些错误.不管它.需要说明的是,这不仅仅有mssql的,还有access,mysql的.成功建立后如图所示:
mouseout="null" orig_onmouseover="null">

Hexli流媒体发布软件的配置:这个是整个解决方案中最核心的地方.下面的步骤将说明如何操作:

    1.建立ODBC数据源.

打开管理工具中的数据源ODBC,点击系统DSN,点击"添加",如图:

mouseout="null" orig_onmouseover="null">

选择SQL Server后,点完成.

mouseout="null" orig_onmouseover="null">

在创建到SQL Server新的数据源时,可按下图填写,当然名称是可以自己设置的,但要记住,因为后面要用到.

mouseout="null" orig_onmouseover="null">

设置验证登录ID,如下图:

mouseout="null" orig_onmouseover="null">

更改数据库,选中刚才建立的数据库,点下一步.

mouseout="null" orig_onmouseover="null">

日志文件,消息语言通常默认即可.

mouseout="null" orig_onmouseover="null">

点击完成后,将弹出一个测试窗体,点击"测试数据源",如果提示成功,则ODBC的设置就完成了.

mouseout="null" orig_onmouseover="null">

mouseout="null" orig_onmouseover="null">

 

    2.Helix设置.

当数据源建立成功后,就可以对Helix进行设置了,首先进入Helix的后台管理.首先进行发布点的配置.下图所示就是一个发布点的配置,这里我就不多说各个文本框中所输入的内容对应的功能了:

mouseout="null" orig_onmouseover="null">

点击"安全设置",弹出"访问控制","用户数据库","用户认证","商业应用"四个菜单,点击"用户数据库",添加一个数据库,大致设置如图所示:

mouseout="null" orig_onmouseover="null">

点击"用户认证",添加一个认证域,数据库就选择刚才添加的那个.大致设置如图所示:

mouseout="null" orig_onmouseover="null">

(题外话)此时我们可以点击"增加域中的用户",会弹出一个页面,输入用户名和密码如test就可以了,这时到SQL Server数据库中会看到我们刚才输入的用户名和密码.我们一会要做的就是用WEB程序来代替这里的手工输入,所以此时可以不必这样操作.

mouseout="null" orig_onmouseover="null">

下面点击"商业应用",添加新的商业规则,具体说明如图所示:

mouseout="null" orig_onmouseover="null">

(题外话)在设置商业应用后,可以点击"许可用户权限",进行用户权限的设置,如test,这里不必操作.

mouseout="null" orig_onmouseover="null">

至此,Helix的配置就算是完成了.下面就是程序上的事情了.

    3.WEB程序.在经过上面的设置后,就可以开始写相应的程序了.功能其实很简单,主要是当打开页面时,将生成的用户名,密码及发布点存入数据库中.

   //判断扩展名
   string VodUrl="XXXXXX";  //这是实际的视频地址
   string StrProName;

   int LastNum=VodUrl.LastIndexOf(".");
   StrProName=VodUrl.Substring(LastNum );


   switch (StrProName )
   {
    case ".rmvb":
    case ".rm":
     
     string Name=Guid.NewGuid().ToString();  //生成用户名
     string Pwd=Guid.NewGuid().ToString();  //生成密码
     string PathUrl="";  //发布点

     if (VodUrl.IndexOf("/A/")>0)  //这是找出相应的发布点,名称可改成实际的发布点名称
     {
      PathUrl="A/";
     }
     else if(VodUrl.IndexOf("/B/")>0)
     {
      PathUrl="B/";
     }
     else if (VodUrl.IndexOf("/C/")>0)
     {
      PathUrl="C/";
     }

     string str1=VodUrl.Substring(0,VodUrl.IndexOf("//")+2);
     string str2=VodUrl.Substring(VodUrl.IndexOf("//")+2);

     VodUrl=str1+Name+":"+Pwd+"@"+str2;

     SqlConnection ConnSql=new SqlConnection("server=localhost;uid=sa;pwd=;database=vod");
     ConnSql.Open();

     string StrSql="insert into users (userid,password,uuid_writeable,uuid) values ('"+Name+"','"+Pwd+"',1,'')";
     SqlCommand SqlCmd=new SqlCommand(StrSql,ConnSql);
     SqlCmd.ExecuteNonQuery();

     StrSql="insert into permissions (userid,url,url_type,expires) values ('"+Name+"','"+PathUrl+"',1,'')";
     SqlCmd.CommandText=StrSql;
     SqlCmd.ExecuteNonQuery();
     break;
   }

此时,视频的地址就经过处理了,然后可以发给用户了.下面的工作就是如何判断用户已经连接成功了,那么就可以删除用户在数据库中的记录了,很遗憾的是,我到现在也没有找到如何实现这种方法,目前我所做的是利用SQL Server的作业功能来定期删除那两个表中的内容.

通过上面的操作就可以实现针对rtsp协议的防资链防下载了,为什么说这种方法只能针对rtsp协议呢?主要是因为Windows的Media不支持这种方法,可以说在对Helix的各种相关配置大多都不能运用在Media上面.所以针对Media的mms协议要采用微软的Windows Media Server流媒体发布软件进行配置了.下面就说说如何操作.

mms协议防盗链防下载的解决方案

微软的Windows Media Server不支持这种通过用户名,密码的方式来实现防资链及防下载功能,实现的方式是使用微软自已的身份验证.

首先对Media Server进行"授权"配置,点击服务器,然后点击右边选项卡中的"属性",如图所示即可:

mouseout="null" orig_onmouseover="null">

然后就是对发布点的配置了,建立一个发布点很简单,微软的东西嘛,目标就是简单的让大家没饭吃,所以我这里就不说如何建立发布点了,下面就已已有的默认发布点为例说明一下.点击"默认发布点"后,点"属性",同样的点"授权",如图所示进行配置.

mouseout="null" orig_onmouseover="null">

启用上述两个授权后,右键点击"WMS发布点ACL授权",在弹出的菜单中选择"属性",这就是典型的Windows权限设置方式,允许什么样的用户来访问这个发布点中的文件,默认为Everyone和Administrator,此时将它们删除,添加一个IIS匿名用户.

mouseout="null" orig_onmouseover="null">

这样就只允许IIS匿名用户来访问发布点的文件了,而IIS匿名用户每次的用户名和密码都不相同(这里我只是觉得好像是如此,不能确定.),所以可以起到防止下载的作用.

下面点击"验证",启用"WMS匿名用户身份验证"

mouseout="null" orig_onmouseover="null">

这样针对mms协议的防下载就配置完毕了,但防盗链没有完成,这个Media Server自身不支持防资链,所以就需要写些程序来判断用户是否是通过正确的页面来观看视频了,这里就不举例了.

上述两种解决方案实现过程中遇到的问题

1.如何得知用户是否已成功连接.目前我还不知道判断用户是否成功连接的代码怎么写,暂时就已数据库作业来代替了.

2.Helix和Media Server不能装在一台电脑上,这个问题我在CSDN上问过,在技术讨论群中也讲过,但仍没有得到解决,主要的原因是端口号冲突.

分享到:
评论

相关推荐

    asp.net流媒体防下载防盗链dll插件

    保护web流媒体,防止非法盗链、下载流媒体资源。本软件主要以dll插件的形式提供给asp.net程序员, 使用简单,基本不占用服务器资源(dll大小: 23.5k),配置方便。本软件实现对url的加密处理, 浏览用户无法得知真正的...

    mms流媒体防盗连插件

    【mms流媒体防盗连插件】是一种专为保护流媒体内容不被非法连接和盗取而设计的技术解决方案。在互联网上,特别是对于提供在线视频和音频服务的平台,流媒体内容的安全性至关重要。盗链行为不仅会导致内容提供商的...

    彻底防盗链&搜索引擎优化

    超强流媒体防盗功能:flash/图片/多媒体文件,您都可以安心地将这些文件放置在您的网站上,而不必担心被别人偷盗链。 无须任何包含文件,纯 HTML 页面也能防流媒体盗链。 独有的偷盗者日志记录,火眼金晶,让你...

    Nginx配置防盗链的完整步骤

    通常情况下,网站所有者希望防止其他网站未经许可直接引用其服务器上的视频和图片资源,因为这可能会导致大量的流量损失,特别是对于付费的流媒体服务。通过设置防盗链,可以确保只有来自特定来源的请求才能访问这些...

    网络流媒体下载终极方案

    对于使用HTTP请求头验证的防下载策略,一些网站会利用如“VirtualWall 防盗链专家”这样的软件,限制非浏览器的下载请求。在这种情况下,需要模拟浏览器的行为,即发送与浏览器相同的请求头给服务器,以欺骗服务器...

    威盾VirtualWall防盗链专家 v3.0.7.1046

    流媒体防盗功能:flash/图片/多媒体文件,您都可以安心地将这些文件放置在您的网站上,而不必担心被别人偷盗链,彻底防迅雷等软件。 彻底防迅雷、FlashGet等;支持远古等点播系统(详见安装目录下帮助文件) 无需重启...

    AVServer流媒体服务器 V3.20 专业版.zip

    具有超低的服务器资源需求,智能化的流量控制,多方位的及时监控能力以及强大的防下载、防盗链机制,具有方便而完善的文件管理、用户管理、IP地址管理等管理功能。是网吧、学校、小区、网站构建音/视频点播系统的...

    彻底防盗链&搜索引擎优化软件VirtualWall v2.1.7.1038

    超强流媒体防盗功能,flash/图片/多媒体文件,您都可以安心地将这些文件放置在您的网站上,而不必担心被别人偷盗链。 无须任何包含文件,纯 HTML 页面也能防流媒体盗链。 特有的偷盗者日志记录,火眼金晶,让你了解...

    CDN 自适应流媒体技术

    6. **安全防护**:CDN还提供了DDoS攻击防护和内容防盗链等安全措施,保护流媒体服务免受恶意攻击和非法使用。 在《中国电信CDN自适应流媒体技术要求.pdf》这份文档中,可能会详细阐述中国电信对CDN服务的具体技术...

    功能超强的网络流媒体地址嗅探工具__酷抓coojah_6.8.193.0614终结版

    独有的完整HTTP请求包和响应包抓取分析功能,打造的就是超强的防盗链下载功能和精准的真实文件类型自动识别功能。独有的疑难网址下载功能,真正将所有网络资源一网打尽。 完全支持所有flv视频网站的下载、所有DJ...

    深圳广播电影电视集团网络流媒体项目实施方案

    ### 深圳广播电影电视集团网络流媒体项目实施方案知识点详解 #### 一、需求概述 **1.1 需求概述** 深圳广播电影电视集团计划构建一个网络媒体平台,旨在为用户提供丰富的多媒体内容及流畅的在线观看体验。为了...

    流媒体平台管理系统(含用户界面系统)技术要求.doc

    系统需有防盗链和防下载功能,保护内容版权,确保服务安全。 这些技术要求体现了流媒体平台管理系统在内容提供、用户体验、系统稳定性和安全性等方面的全面考虑,旨在构建一个高效、灵活且安全的流媒体服务环境。...

    7i24开发资料

    防盗链技术是互联网服务提供商防止资源被非法引用和盗用的重要手段,尤其对于提供大量数据、流媒体服务的平台而言,其重要性不言而喻。 7i24作为一个专业级的服务平台,其防盗链策略可能包括但不限于以下几方面: ...

    bullstream:流媒体 gitches 的真棒页面!

    9. **安全性**:流媒体服务还需要考虑版权保护、防盗链、DDoS攻击防护等问题,这涉及到SSL/TLS加密、访问控制和防火墙规则的配置。 10. **跨平台兼容性**:流媒体服务应确保在多种设备(如桌面、移动设备、智能电视...

    收费下载和电影收费系统程序

    收费下载和电影收费系统程序是一种...综上所述,收费下载和电影收费系统程序是结合了电商、流媒体和用户管理的复杂系统,涵盖了从内容展示、支付处理到用户交互的多个层面,需要开发者具备全面的技术知识和实践经验。

    网页视频下载

    自适应流媒体技术可以根据用户的网络状况动态调整视频的质量,确保即使在网络条件不佳的情况下也能为用户提供流畅的观看体验。 ### 四、用户体验优化策略 #### 1. 用户界面设计 良好的用户界面设计能够极大地提升...

    电信VOD视频点播系统

    1. **防盗链和防下载**:大量盗链和下载工具的使用可能导致服务器负载过重,内容无法得到有效保护。视翰公司通过动态秘钥生成验证技术和32位密钥加密,结合DRM数字版权管理系统,防止非法下载和盗链,确保内容安全。...

    flv视频点播系统asp+xml源码,可上传fvl,防富码电视

    这可以通过设置访问权限、使用防盗链技术、或者采用动态生成的播放URL等方式实现。 5. **用户界面**:`index.asp`和`upload*.htm`应提供清晰、友好的用户界面,使用户能轻松浏览视频列表,上传新的视频,并且在播放...

    迅风影视系统

    视频流媒体是指将视频内容通过互联网实时传输给用户的技术,让用户无需等待整个视频文件下载完毕就能开始观看。这种技术的关键在于视频的分段传输和即时解码播放,极大地提高了用户体验。 在"迅风影视系统"中,可能...

Global site tag (gtag.js) - Google Analytics