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

流媒体防盗链防下载

阅读更多

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

这里我要介绍的方法是结合了服务器流媒体发布软件的配置,数据库及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的加密处理, 浏览用户无法得知真正的...

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

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

    威盾VirtualWall防盗链专家 v3.0.7.1046

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

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

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

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

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

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

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

    亚阳影视 v1.2(asp)

    凭借作者3年多的行业软件开发经验,系统无论在前台界面,后台功能、适用 范围等诸多方面,都己做到最大限度人性化,尽量避免了用户手工修改代码的麻烦,软件涉及到换肤、防盗链、流媒体控制、软件注册、地址管理、...

    IDCWebAngel (1.0.1.0) 超级IIS防火墙

    “网站天使”之“防盗链”,可按需求设置“防盗链模式”、“防盗链目录”、“允许链接域名列表”另分三种防盗链文件大类自行设置,分别为:“媒体文件”、“图片文件”、“其它文件”。 可使用静态调用或结合sdk...

    asp.net Web 媒体保护精灵V2.0

    本软件的主要功能是保护web媒体资源(包括视频,图片,音频等任意媒体文件),防止非法盗链、下载媒体资源。本软件主要以dll插件的形式提供给用户, 使用简单,基本不占用服务器资源(dll大小: 23.5k),配置方便。本软件...

    龙青视频点播系统 2005.06.21

    基于Helix Server流媒体服务器的流媒体内容发布管理系统,使用流行并成熟的ASP语言编写,及企业级的Microsoft SQL Server 2000数据库,拥有强大的防盗链、防下载、会员管理、代理商管理和计费等系统。...

    亚阳影视 v1.3 Beta2

    凭借作者3年多的行业软件开发经验,系统无论在前台界面,后台功能、适用范围等诸多方面,都己做到最大限度人性化,尽量避免了用户手工修改代码的麻烦,软件涉及到换肤、防盗链、流媒体控制、软件注册、地址管理、...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.5.5 流媒体服务应用 10.6 Linux下常见的性能分析工具 10.6.1 vmstat命令 10.6.2 sar命令 10.6.3 iostat命令 10.6.4 free命令 10.6.5 uptime命令 10.6.6 netstat命令 10.6.7 top命令 10.7 基于...

    如何保证网络的安全(2).doc

    防雷、防水、防火、防盗 、防电磁干扰及对存储媒体的安全防护。 2、系统安全 网络设备应使用大小写字母和数字以及特殊符号混合的密码,且安装防病毒软件并 及时对系统补丁进行更新,对于不必要的服务及权限尽可能的...

    如何保证网络的安全(1).doc

    防雷、防水、防火、防盗 、防电磁干扰及对存储媒体的平安防护。 2、系统平安 网络设备应使用大小写字母和数字以及特殊符号混合的密码,且安装防病毒软件并 及时对系统补丁进行更新,对于不必要的效劳及权限尽可能的...

    深圳都市在线音乐频道全站完整系统

    配合最新版本的WindowsMediaPlayer可完成大多数流行影音文件、流媒体、影碟等的播放而浏览者无需其他专用软件。 5-播放器同时也支持FLASH播放,并自动识别。 6-完善的会员功能; 7-系统连续播放功能; 8-软件下载...

    电子设计方向.doc

    题目:基于物联网的设备监管系统 思路:设备监管系统通过在被监管设备前端,布置震动监测传感器,防拆开关和温度 传感器,将设备被盗信息通过GSM/CDMA网络进行远程传输,从而及时预警,防盗,减少 财产损失。...

Global site tag (gtag.js) - Google Analytics