此文是结构松散的初学者教程系列第四篇。主要阐述了如何更好的应用Flash Media Server3.5的新安全特性。首先我将告诉你如何加密视频,使用户无法拦截网络上的流信息。然后我将解释如何添加SWF证书,从而使得用户无法反编译以及重新使用你的SWF文件。

他们不把它叫做“野生,野生的网页”的原因是它的情况并不少见。例如,当你发布影片到你的网站上,几分钟之后它就会出现在别的地方。事实上,如果有正当理由困扰着网络视频的使用的话,那就是不安全性。

让我说清楚本文的目的。在这里我将采用的方法并不是像保护一个州的首脑一样将视频包裹在一个安全的警戒区。相反,我将会使它可以被自由的使用,但想偷就不是那么容易了。

我将用类比的方法来阐述内容。最近我需要为我的笔记本电脑配置一个鼠标。在如此简单的购物中使我感到震惊的是鼠标的包装:它被包装在一个坚硬的塑料壳里面,想要打开它必须要用到链锯。这样包装的目的就是防止偷窃。想要打开它需要非常长的时间而且机会是很好的。如果你试图打开包偷走鼠标的话,会有一名监视你的保安人员走过来询问你究竟要做什么。

采用渐进方式下载视频,也就是使用HTTP连接将FLV文件下载到Adobe Flash Player中等同于将鼠标用USB线悬挂在架子上。绝对是不安全的,而且比较容易被偷。原因是FLV文件被下载到了浏览器的缓存中。将此FLV文件从缓存中复制到桌面是不费吹灰之力的。

如果仅仅是通过手机向祖父传递儿子的视频或相片的时候,安全不那么重要。换句话说,如果你花钱购买了内容或者是投资了内容的生产,那么保护你的投资对你来说就变得意义重大了。这也就是Flash Media Server产生的原因。

当通过FMS流传输视频的时候,没有任何东西进入浏览器的缓存。Flash Player担当起了将比特流转换成网页中放器中FLVPlayback组件能播放的视频。通过FMS流传输视频为视频的安全做出了重大升级。就像是零售商将鼠标锁在了橱窗里,或将鼠标转移到上锁的陈列盒里。

注意:阅读Flash VIdeo Learning Guide的“Delivery options for Flash Video"章节获取更多的网络传输视频方法,同时观看视频技术中心的“Delivering video on the web”视频了解渐进式下载FLV文件和流传输之间的区别。

Flash Media Server3.5内置了两种特性帮助你将鼠标放回到架子上而且不会被偷走:加密和SWF证书。此文告诉你如果应用这些特性到一个流视频中。

加密或静区

你不是很讨厌当你在和别人谈话的时候,别人趴在墙上偷听吗?在互联网上这是非常普遍的,很多第三方开发的程序已经被用来监听服务器和客户端的信息。当它们捕获到一个感兴趣的数据流后直接就会抓住它,而不先进行询问。

FLash Media Server内置了加密特性,最令人喜欢的一点就是:为了使用它你并不需要获得量子物理学的博士学位,而仅仅需要的是多按下键盘上的一个键。

具体步骤如下:

1.下载将会用到的文件http://download.macromedia.com/pub/developer/beginner_security_fms3.zip。解压后,拖动Vulures.flv和Vultures.mp4两个文件到vod文件夹下的media文件夹里。路径是C:\Program Files\Adobe\Flash Media Server 3.5\applications\vod\media.

2.打开一个新的Flash Cs4 文件。拖动一个FLVPlayback副本到舞台上。

3.在组建检查器的参数选项卡中,双击source参数打开内容路径对话框(见图1)。

4.输入如下路径:rtmpe://localhost/vod/Vultures

5.点击Ok,当Flash将元数据加载到FLV文件中后对话框会关闭。

6.保存并测试影片。

图1:通过在rtmp路径中添加字母e实现Flv文件加密

播放视频的FLV文件是一个加密的文件。通过添加字母e到路径上,你就告诉了FMS3.5对vod文件夹中的FLV文件添加实时的加密。在服务器到客户端Flash播放器的传输过程中文件都是加密了的,而Flash Player并不需要任何钥匙就可以实现文件的解密。

只有当你打开FMS3.5 管理控制台后才会被提示流是经过加密处理的。如果你单击View Applications然后单击Client选项卡,你就会看到在协议栏里流出服务器的视频流所采用的协议是RTMPE。(见图2)

图2.管理控制台指示协议栏的加密FLV流。

SWF文件的防盗校对

如果你接触网络有一段时间了,你就会明白捕获一个SWF文件是多么容易的一件事。事实上,关于这个操作的一个非常普遍的讨论时“嘿,我已经得到了 一个SWF文件,问题是我该如何反编译它从而获得源文件呢?”我不想深入讨论有关的道德问题,因为在特定情况下这样操作是十分必要的。但总体而言,反编译SWF文件是不可接受的。

这就提出了一个相当有意思的问题:“我已经花费了大量的时间和金钱开发SWF文件。我该如何防止它被其他人反编译呢?”如果你采用Flash Media Server3.5话,那将会是一件极其容易的事情。

具体步骤:

1.创建一个新的Flash Cs4文档。

2.舞台上添加一个FLVPlayback组件,并将其源参数设置为rtmpe://localhost/vod/mp4:Vultures

3.在皮肤属性,选择SkinUnderPlaySeekFullscreen.swf.

4.添加一个新图层,在此图层的舞台顶部加入一些文件或者画一个简单的图形。文字或图形在这个练习中是十分重要的。

5.继续,测试影片。一切工作正常,文本位于视频之上(见图3)。

图3:视频正常播放

注意:正如我以前指出的那样,当指向的是vod文件夹中的mp3和mp4文件时需要在媒体类型后追加冒号和文件名,没有扩展名。如果文件无法正常工作,认真检查无比确保冒号和文件名中间没有插入空格。

保护文件不被偷走和反编译是Flash Media Server3.5的一个极其漂亮的特性。关于这一特性,默认情况下是不被激活的,你要启动它需要改变一些设置。

首先改变驱动该特性的XML文件。如果你不太适应直接改变application文件,那么事先先把文件复制到桌面,这样如果你犯了错误的话,还可以用原来的文件替换掉。

6.保存文件并定位到C:\Program Files\Adobe\Flash Media Server3.5\conf\_defaultRoot_\_defaultVHost_,打开此文件夹里的Applications.xml文件。

注意:我会用Dreamweaver来打开这个XML文件,至于采用什么应用程序完全取决于个人爱好。

7.向下滚动到726行,如果没有行标,那么用SWf作为关键字进行搜索就可以找到了。

8.现在把<SWFVerification enable="false">中的false改成true,见图4.

图4.更改设置为true,打开SWF证书。

先不要保存文件,这个过程还有一个你需要知道的方面。

你不能仅仅打开SWFVerification就高兴的希望它能工作。你同时还需要放置一个SWF文件副本到某特定的位置。如果向下滚动XML文档就会注意到这样一个标签<SWFFolder></SWFFolder>。如果你已经阅读了在此标签之前的注释文字的话(见图5),你就会明白需要创建一个文件夹(推荐使用SWFs名字),同时将即将创建的SWF文件放置到这个文件夹下。将会发生的是服务器会首先去包含此SWF文件的文件夹以及证实其是否正确。

图5.通过将SWF文件放置到一个特定的文件夹锁定它。

9.如果继续向下滚动到XML文件的下一部分,就会发现可以设置采用的Flash播放器的版本。不要随便修改这里。唯一可用的版本是Flash Player 9.0.115及更高版本。这里的设置是为了使其能够适应未来的播放器更高的版本。

10.滚动到<Cache>标签区域。你就会看到SWF文件会存活--TTL标签意味着Time To Live--1440分钟在缓存中也就是24小时。如果你认为过长或过于偏执,你可以更改数值。事实上,改成5的话就意味着只会在内存中保留5分钟。(见图6)。

图 6.SWF只在缓存中保存5分钟

11.保存文件并退出编辑此文件的程序。

在更改了服务器配置之后,你将要做的是重新启动FMS3.5server。

具体步骤如下:

1.启动Flash Media Server管理控制台,打开后,单击Manage Servers按钮。

2.在servers面板的底部有5个按钮。中间的那个像圆形箭头的按钮(见图7)就是要找的按钮。用来重启服务器或主机。单击后,将会提示你是否要重启服务器。单击Restart后,SWF Verification就被打开了。

图7.单击中间按钮重启服务器

3.返回到Flash Cs4中,发布Vultures影片。在浏览器中打开HTMl文件,视频不会播放。事实上,你应该看到的是酒吧,但你现在看到的是SWF文件不能被确认而服务器拒绝了此流。

图8.SWF文件不能被证实时看到的(你没有做错人和事)。

4.现在为了使一切正常工作,需要做的是复制粘贴此项目中的SWF文件到Application.xml中你启动SWFVerfication时所指向的文件夹中。定位到C:\Program Files\Adobe\Flash Media Server 3.5\applications\vod创建一个名为SWFs的文件夹。

5.回到包含已发布HTML文件的那个文件夹中,打开HTMl文件,视频开始播放了!

6.为了更真切的认识到这一特性是如何加固房屋的,返回到Flash 项目中,移动图层2里的对象到舞台的另一位置,见图9.你所做的正式模拟一个盗贼偷盗你的SWF文件,反编译它,以及玩弄它。

图9.屋内的盗贼

7.使用相同的名字发布次文件,打开HTML文件。你就会看到图10 所示的内容。事实上,FMS3.5已看到了当前的SWF文件,指向了SWFs文件夹,然后询问“此文件夹中的SWF文件是当前正播放的SWF文件吗?”响亮的回答“不是”。结果就是否定了这次连接请求。

图10.由于两个文件不匹配且不能被证实所以否定了流

最后,一下是一些需要知道的详细信息:

1.如果设置了 <SWFVerification enabled="true">,那么就打开了这一特性,所有本地创建的SWF 文件都需要被证实。如果你不认为自己会用到这一特性,那么在学习完此教程之后就将值设置为false.

2.如果任由verification特性打开,确保所有使用FMS3.5的SWF文件都被复制到了SWFs文件夹。如果不这样做的话,什么都不会工作--我猜Adobe的技术支持热线必定会接到许多盛怒的电话。

在本篇文章里我已经告诉你了如何在本地工作。如果这两个特性对你来说直观重要,那么为了将盗贼挡在门外你需要和你的网络服务提供商或FVSS讨论这些特性。

接下来

此文告诉你了一些保护你的内容的方法。其中之一相对简单---RTMPE加密视频流,另一种是采用fms3.5的SWFVerification新特性。如果你比较关注这一话题,以下是其他相关的内容:

1.Lisa Larson-Kelley在 Scaling and securing streaming media applications with Flash Media Server文中围绕这一主题进行了更深入的阐述。

2.如果你真的需要工业实力保护,你可能想了解Flash Media 版权管理服务器,请阅读Laurel Reitman's overview.

下一篇文章涵盖了使用FLVPlayback组件和ActionScript3.0实现音频的基本流处理。

转载于:https://www.cnblogs.com/AndySong/archive/2009/05/15/1457774.html

四、Flash Media Server3.5安全特性相关推荐

  1. flash media server播放实时视频流

    标签: 图2.连接到电脑的所有摄像头 注意:你可以使用多种摄像头甚至是数字视频录像机来捕获视频.正如FME支持文档中所阐述的那样:Flash Media Live Encoder被用来和微软遭人抱怨的 ...

  2. java代码去连接flash media server服务器_flash media server 第一课:Hello world!

    client-server架构 FMS是基于RTMP协议的client-server架构. 客户端的应用由flash或是flex搭建,运行在flash player或是AIR上,服务器端运行在服务器上 ...

  3. FMS4.5( Adobe Flash Media Server4.5)流媒体服务器搭建

    下载FMS4.5 下载地址:http://pan.baidu.com/s/1pJLi5Ur(已更新) FMS是用于用户之间相互通讯的新平台.它集成了Flash多媒体交互的特性,又添加了实时音频和实时数 ...

  4. 关于Flash Media Server

    原 Flash Communication Server 已经正式改名为 Flash Media Server. Flash Media Server 2.0 的最新消息 http://macrome ...

  5. 基于FMS(Flash Media Service)的多人视频聊天

    记得以前在XP系统上做过一个基于Flex和Fms的多人视频程序,但是最近把它拿过来放在我的Win7的本里面运行竟然总是报告NetConnection.Call.Failed弄得我莫名奇妙,又有点不知所 ...

  6. Flash Media Server安装

    1.什么是Flash Media Server ? 简称FMS.服务器是用于用户之间相互通讯的新平台;它集成了Flash多媒体交互的特性;又添加了实时音频和实时数据流等新特色.. 使用该平台,你可以通 ...

  7. Learning Flash Media Server 3中文版-第4章之2/6

    Learning Flash Media Server 3中文版-第4章之2/6 2009年08月19日 [b]4.2.[/b][b]实例化远程共享对像[/b] 这一章将以最少的代码来展示三种不同的远 ...

  8. Flash Media Server 入门教程

    FMS的最新版本已经到FMS 3了 ,本入门教程使用Flash Media Server 2 演示,但你可以很容易的升到 3,因为FMS 到 FMS3 的更新几乎没有什么改动 ,还有本教程客户端使用a ...

  9. How to protect video content (Flash Media Server)

    Stream capture software providers are trying many ways to capture and archive video delivered to Ado ...

最新文章

  1. G - SOLDIERS POJ - 1723 sort+数学
  2. FckEditor-未能映射路径/UserFiles/image/
  3. android2.2
  4. Java应用梯度下降求解线性SVM模型参考代码
  5. Delphi 7下使用VT实现树型列表结合控件
  6. mysql fetch rows,php中mysql_fetch_array()和mysql_fetch_rows()函数区别
  7. 如何查看pytorch中层的名字
  8. 豪气十足!联想Z6 Pro法拉利定制版本首现
  9. java getnextentry_java.util.zip.ZipInputStream.getNextEntry()方法示例
  10. hrrn算法java_常用的调度算法
  11. Using neural network to combine measures of word semantic similarity for image annotation
  12. 分享一个很好的dll查看器
  13. MYSQL 思考题5 参考答案
  14. 查看已激活Windows的密钥
  15. Android 动画之 View动画 和 帧动画
  16. 无法启动程序,.dll不是有效的Win32应用程序
  17. HTML图片的空隙解决
  18. 网站老是被劫持怎么办、网站被劫持的解决方案有哪些
  19. 几个潜在的AI科研助手
  20. 雅思阅读话题词汇-alluvial

热门文章

  1. VB DATA控件链接SQL SERVER
  2. NVelocity:语法
  3. DOJO试用手记3--异步通信【原创】
  4. ubuntu 修改或创建交换分区的大小
  5. OVS bridgebundleport分析(三十四)
  6. 福特汉姆大学计算机科学专业,没有计算机专业背景可以申请哪些美国名校?
  7. python测试用例管理工具_三款开源测试管理工具推荐
  8. python类私有函数_python-面向对象-14-私有方法
  9. 线程和进程 linux,Linux查看进程的所有子进程和线程
  10. Windows下用C语言获取进程cpu使用率,内存使用,IO情况