页面WMP传参防盗链
搜到的一个例子,这个动态页面动态生成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踢人的方式,来控制,始终只有一个人用以一个账号看视频。
爱东东
我的各类资源收集收集网站 http://tag.iddgame.com
我的实验性技术网站 http://www.iddgame.com
我的魔兽世界网站 http://www.iddwow.com.cn