最近由于需要对网页视频(直播)加密(主要是对视频流地址保护),做了一个简单的应用。
记得曾经看过用了asp动态生成脚本文件来隐藏网页内容,我想JSP也可以吧,所以我一开始就想到也用这种方式来加密。但浪费了我一下午的时间,也没整出个类似的方法。脚本倒是动态生成了,但出错的原因是:<script src="b.jsp"></script>,只要src引用的不是.js语法就通不过!无奈,我只好用<iframe>嵌入网页来实现了。首页: index.jsp
<body>
<noscript>
<iframe src="index.jsp"></iframe>
</noscript> //加入noscript防止用户将页面”另存为“
<iframe src="b.htm" height="400" width="352" frameborder="0" scrolling="no"></iframe>
</body>
b.htm中嵌入了视频播放器:
//其中<object>标签和<embed>标签的嵌套使用是为解决IE与Netscape浏览器的兼容性问题。
<OBJECT id=mediaplayer
codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=6,4,7,1112
type=application/x-oleobject height=288
standby="loading microsoft windows media player components..."
width=320
classid=clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95><PARAM NAME="showstatusbar" VALUE="1"><PARAM NAME="filename" VALUE="视频流地址"><PARAM NAME="autostart" VALUE="1"><PARAM NAME="showcontrols" VALUE="1"><PARAM NAME="windowlessvideo" VALUE="1">
<param name="EnableContextMenu" value="0">
<embed
type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/windows/windowsmedia/download/"
filename="视频流地址"
autostart=1 EnableFullScreenControls=0
ShowControls=1 ShowDisplay=0 ShowStatusBar=1 width="352"
height="288"> </embed> </OBJECT>
做完以上两步以后你可以浏览一下,当查看index.jsp源代码时,你看到的只是"b.htm",但是你如果直接请求b.htm的话还是能看到视频流的地址。我们现在要做的最后一步是在b.htm中判断源页面,采用javascript就OK了以下是代码:
<script type="text/javascript">
var tt=document.referrer;
var temp=tt.substring(tt.lastIndexOf("/")+1,tt.length);
if(temp!="index.jsp")
document.location="错误页面";
</script>
将以上代码加入b.htm的head中,当用户直接请求时,此段代码直接将转到错误页面
/***********************************************************/
11.27修改
经过今天晚上测试,发现了上述错误的原因:当我用jsp生成页面时,我用EC直接生成的JSP页面,
带有头文件信息等,生成的页面当然带<head>等啦,放进<... src="a.jsp">中肯定编译不过的,
解决方案就是:在JSP页面(a.jsp)中之写<% out.println("document.write('asd');");%>
这样当在另一jsp中引用<script src="a.jsp">,请求时,直接显示的是asd;
注意问题:当out.println("document.write('<script>'");时,应该用转义字符<因为碰到<script>的话,浏览器直接就解释执行了写成out.println("document.write('<script>'");
posted on 2007-07-01 10:34
李桢 阅读(1056)
评论(0) 编辑 收藏 所属分类:
javascript