English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> 页面WMP传参防盗链

 

页面WMP传参防盗链

威盾防火墙 2014-11-12

 

搜到的一个例子,这个动态页面动态生成asx,而后mediaplayer播放
<%@   page   language="java"   contentType="video/x-ms-asf;   charset=gb2312"% > 
<% 
                  //音乐文件所在的目录,我这里用的是绝对路径,自己随意 
String   songid=(String)request.getAttribute("songid"); 
                  /*从Servlet中传过来的多个音乐文件,之间用"_"连接 
                      然后再用String类的split("")方法拆分字符串为数组,将字符串数组循环 
                      写入asx标记中*/ 
String[]   str=songid.split("_"); 
% > 
<ASX   Version   =   "3.0" > 
<% 
for(int   i=0;i <str.length;i++) 
{ 
                            /*我的站点音乐文件和JSP程序不在一个服务器 
                                文件录入数据库时没有加扩展名,所以我下面加上了".wma",自己随意 
                            */ 
                            str[i]=str[i]+".wma"; 
% > 
<Entry > 
<Author > </Author > 
<Copyright >低品质音乐,仅供试听!请支持正版唱片! </Copyright > 
<Title > </Title > 
<Param   Name   =   "WM/AlbumTitle"   Value   =   "爱龙♂空间[www.ilkj.net]"   / > 
<Ref   href   =   " <%=url+str[i]% >"   / > 
</Entry > 
<% 
} 
% > 
</ASX >

request.getAttribute("songid");由后台动态生成,这时可以在随机码等方面做手脚,达到防止盗链的目的。

还有一个,在此基础上,在Windows Media Server端做插件,采用类似如下模式:
<object id="mplayer1" height="60" width="300" classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" class="player">
<PARAM NAME='URL' value="mms://60.190.28.152/VOD1/VOD/SMM/film03123001.WMV?00D2752D19D3B7C04B20D4364B061C94">
<param name="rate" value="1">
<param name="balance" value="0">
<param name="currentposition"  value="0">
<param name="defaultframe" value>
<param name="playcount" value="100">
<param name="autostart" value="-1">
<param name="currentmarker" value="0">
<param name="invokeurls" value="-1">
<param name="baseurl" value>
<param name="volume" value="100">
<param name="mute" value="0">
<param name="uimode" value="full">
<param name="stretchtofit" value="0">
<param name="windowlessvideo" value="0">
<param name="enabled" value="-1">
<param name="enablecontextmenu" value="0">
<param name="fullscreen" value="0">
<param name="samistyle" value>
<param name="samilang" value>
<param name="samifilename" value>
<param name="captioningid" value>
<param name="enableerrordialogs" value="0">
<param name="_cx" value="8123">
<param name="_cy" value="1588">
</object>

或动态生成asx时,在url中加随机码参数。
而后服务器端插件获取随机码,进行比较,如果比较错误,则拒绝播放。

测试结果可行。在服务器端写授权插件,通过授权插件中对随机校验码进行校验,以此控制该音/视频只能在特定网页上播放。

打开网页->验证服务器端生成随机校验码->随机校验码写入页面客户端播放器参数->流媒体服务器授权插件获得客户端播放器传递的随机校验码->授权插件与验证服务器进行随机码比较->确认随机码正确,则播放,否则不播放。随机码设定较短失效时间,例如1分钟。
另:为了控制一个账户只能自己看,不能多个人同时用一个账户查看。可以通过客户端页面与心跳服务器进行心跳的方式,采用类似QQ踢人的方式,来控制,始终只有一个人用以一个账号看视频。


相关内容: 最新内容:
图片、文件防盗链程序[2014-11-12]
c#.net 防盗链的实现[2014-11-12]
网站的防盗链系统是如何做的?[2014-11-12]
防盗链[referer][2014-11-12]
Lighttpd 图片和视频等文件的防盗链处理[2014-11-11]
使用ISAPI Rewrite实现IIS图片防盗链[2014-11-11]
图片、文件防盗链程序[2014-11-12]
c#.net 防盗链的实现[2014-11-12]
网站的防盗链系统是如何做的?[2014-11-12]
防盗链[referer][2014-11-12]
FTP服务器如何实现安全性[2014-11-12]
服务器安全设置之防溢出提权攻击解决办法[2014-11-12]