Flash的安全沙箱[网站美工]
本文“Flash的安全沙箱[网站美工]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
几个月前从学校图书馆借了本Flex与AS3编程的书,我看书的速度还是挺快的,因为我只看可以吸引我的知识,Flex中我普通不会去看的是计划这块,最多理解理解,固然我对计划还是对比感爱好.这书,我是在地铁上,酒吧内翻翻看看的,这里得做下笔记,免得一年后我都不知道自己“相对”系统地理解过这个.恩,既然我这次笔记有触及到Flex,那么先说说Flex的最重要两个文件:MXML文件与AS文件.
MXML与AS的hello world,若何编译这就不说了(还有Flex与Flash什么辨别等等这些基本点都不用提了):
MXML文件其实就是个XML文件,其内可以利用这样的标签来内嵌AS脚本(就像HTML文件中标签内写JS一样).除了可以利用import来动态导入Flex与Flash的模块(可以理解为就是个as文件)外,还可以利用下面两种方法导入as文件:
与说这些的目的是因为在浏览器的客户端利用上,除了JS还有什么脚本是值得关注的?那就是AS了,一样很重要的逻辑掌握部份!而界面展示上,此时MXML与HTML就近似了(看上面,看上面,自己类比下):).RIA不是已经炒作很炽热了吗?Flex就是努力于RIA的利用,Adobe为了扩大战场,推出了AIR环境,那么此时采取Flex编写的程序在浏览器中与桌面环境下都可以很好的移植了.像Flex与Flash这样奇特的东西,战场不但仅在浏览器上,还跑到了桌面环境下.一个很重要的安全模子就被提出了:Flash的安全沙箱.如果没这样的安全战略,恐怕这个世界就不安定了,当然早期,这个世界本身就不安定(我接触Flash时,当时还是5.0、6.0版本的,那是04年,我刚上大学的时刻……).这样的战略是这些年渐渐完善的.
其实说Flash的安全沙箱就包含进Flex了,因为本质都是Flash,都是运行在Flash Player这个容器中的,Flex仅仅是将程序员与计划人员别离了罢了.
进入本次的主题- -..
因为是笔记,所以不会具体,并且这些笔记来自我看的书籍与资料(这仿佛是废话).
安全沙箱包含:远程沙箱与本地沙箱.其实这个沙箱模子近似与浏览器中的同源战略.在同一域内的资源会被放到一个安全组下,这个安全组就被称为安全沙箱了.
在深化理解沙箱之前先得明确Flash Player的权限掌握(我还是按照Flash CS3上的中文官方文档的名词来划分吧):
1、管理用户掌握:
这指系统的最高权限用户,win下的Administrator,linux下的root等.有两种范例的掌握:
a)、mms.cfg文件:数据加载、隐私掌握、Flash Player更新、旧版文件支持、本地文件安全性、全屏情势等.
b)、”全局 Flash Player 信任”目录:当某些SWF文件被指定到这个受信任的目录下时,这些SWF 文件会被分配到受信任的本地沙箱.它们可以与任何别的SWF文件举行交互,也可以从肆意位置(远程或本地)加载数据.该信任目录的默许途径为:C:\windows\system32\Macromed\Flash\FlashPlayerTrust.
2、用户掌握:
相关于第1种,这里的用户是指普通用户.有这三种范例的掌握:
a)、摄像头与麦克风设置:还记得ClickJacking的那个Flash DEMO么?
b)、同享对象存储设置:就是那个SharedObject了.
c)、相对与”全局 Flash Player 信任”目录,用户权限这也有个”用户 Flash Player 信任”目录.默许途径:C:\Documents and Settings\JohnD\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust.
3、Web 站点掌握(跨域战略文件):
就是众所周知的crossdomain.xml文件了,目前的安全战略是该文件只能存放在站点根目录下了,文件格局如:
随便看个例子:http://fanfou.com/crossdomain.xml.通过该文件的配置可以供应答应的域跨域拜候本域上内容的权限.
4、作者(开辟人员)掌握:
开辟者可以通过编码(在AS脚本中)指定答应的安全掌握权限,如:
Security.allowDomain(”www.xeye.us”);
当然都支持通配符*了.这个通配符真是个瘟神,程序员可得谨严利用,免得增添不必要的安全风险.
好,Flash Player的权限掌握明了之后,目前可以来看看安全沙箱了.
1、远程沙箱:
这个远程沙箱掌握着远程域上,浏览器环境中的安全战略,比方http://xeye.us/域中的Flash文件就无法单刀直入地与http://hi.百度.com/ycosxhack域上的Flash文件交互.同一个域(严峻域)下的全部文件属于一个沙箱,沙箱内的对象是可以彼此返回,而沙箱之间的对象需求交互的话,得靠上面介绍的权限掌握的“Web 站点掌握(跨域战略文件)”与“作者(开辟人员)掌握”举行了.
2、本地沙箱:
出来个本地沙箱,没办法,Flash与Flex文件可以在我们的桌面环境下运行.假如没有个很好的安全战略来限制这些功效不弱的AS脚本的话,那绝对是很危险的事.
它有三种范例:
a)、只能与本地文件系统内容交互的本地沙箱:顾名思义,就是该Flash文件在本地运行时是不能与网络上的对象举行通信的,而只能与本地对象举行交互.
b)、只能与远程内容交互的本地沙箱:还是顾名思义,此时的Flash文件要与远程域对象交互时,需在远程域上通过战略文件或以Security.allowDomain编码方法来设置拜候战略(同远程沙箱).此时不能拜候本地文件.
c)、受信任的本地沙箱:完善了,上面介绍的权限掌握中,管理用户与普通用户都有Flash Player信任目录的掌握权限,只要将我们的SWF文件放到受信任目录内运行,那么这个Flash文件便可以与本地域和远程域通信了:).
当然以上这些沙箱范例,我们可以通过编码来肯定当前运行的Flash文件被分配到什么范例的沙箱中.还是通过Security类:Security.sandboxType,值:
Security.REMOTE(远程沙箱)
Security.LOCAL_WITH_FILE(只能与本地文件系统内容交互的本地沙箱)
Security.LOCAL_WITH_NETWORK(只能与远程内容交互的本地沙箱)
Security.LOCAL_TRUSTED(受信任的本地沙箱)
恩,Flash的安全沙箱就是这些笔记了,写到这,还不得不提下Flash的一些其他安全问题.这些安全问题大多环绕安全沙箱举行.
在我们公布Flash时生成的HTML文件内,与标签内的几个属性需求明确的.
allowNetworking:
该参数掌握Flash文件的网络拜候功效.有三个值:all(全部的网络API都可用)、internal(除了不能利用浏览器导航和浏览器交互的API外,别的的都可用)、none(所以网络API都不可用).
allowScriptAccess:
这是AS与JS通信的安全掌握,还记得ExternalInterface的作用吗.有三个值:never(ExternalInterface的call办法不能与HTML的JS脚本举行通信)、sameDomain(同域内便可以了,这是默许值)、always(这个就答应全部域了,对比危险).
allowFullScreen:
全屏情势的安全问题,这是一个boolean值,默许为false,不答应Flash全屏.全屏带来的安全问题莫非是用户界面拐骗这样的范例?我不是很清楚.
上面这三个属性得辨别好了啊.安全问题不但这点,还有比方LocalConnetion的本地通信、同享对象SharedObject的利用、E4X在AS中的利用、别的的Socket通信、一些网络API,比方全局的navigateToURL、Flash与别的非Flash的外部对象的通信问题等等.这些安全问题大都环绕安全沙箱举行.Flash大概Flex文件可以做得很漂亮,很精彩,比方那些非常优异的Flash动画与游戏,但是一定得时刻保持鉴戒.
可以起床了,明天坐火车回家,临客- -...本假期有挑衅性的任务,应当没问题,大家过个把月便可以看到我们的战果了!
以上是“Flash的安全沙箱[网站美工]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |