posts - 0,  comments - 3,  trackbacks - 0

最近由于需要对网页视频(直播)加密(主要是对视频流地址保护),做了一个简单的应用。

记得曾经看过用了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>'");时,应该用转义字符&lt;因为碰到<script>的话,浏览器直接就解释执行了写成out.println("document.write('&lt;script>'");

posted on 2007-07-01 10:34 李桢 阅读(1056) 评论(0)  编辑  收藏 所属分类: javascript
<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿(1)

文章分类

文章档案

搜索

  •  

最新评论