flash8安全性问题解析


[1b]帮助上说:涉及到以下方法的操作都需要crossDomain.xml:[/1b]
XML.load()、
XML.sendAndLoad()、
LoadVars.load()、
LoadVars.sendAndLoad()、
loadVariables()、
loadVariablesNum()、
MovieClip.loadVariables()、
XMLSocket.connect()
Macromedia Flash Remoting (NetServices.createGatewayConnection)
Webservices。
   [1b]下面这些方法是不需要crossDomain.xml也能成功加载的:[/1b]
loadMovie()
MovieClip.loadMovie()、
MovieClipLoader.LoadClip()。
Sound.attachSound 和
Sound.loadSound
   [1b] 但是在操作不同域的swf的时候,我们需要在被操作的swf上加上[/1b]:
System.security.allowDomain("*") 或 System.security.allowInsecureDomain("*")(想特别指定也行,这里为了方便...)
    [1b]先看看Flash8帮助里面的原文:[/1b]
    如果两个 SWF 文件是不同的域提供,例如
   
[url=http://mysite.com/movieA.swf]
http://mysite.com/movieA.swf
[/url]

    和
[url=http://othersite.com/movieB.swf.]
http://othersite.com/movieB.swf.
[/url]
    则在默认情况下,Flash Player 不允许 movieA.swf 编写 movieB.swf 的脚本,也不允许 movieB 编写 movieA 的脚本。
通过调用 System.security.allowDomain("mysite.com"),movieB.swf 可以授予 movieA.swf 编写 movieB.swf 的脚本的权限。
通过调用 System.security.allowDomain(),一个 SWF 文件可以赋予其它域中的 SWF 文件编写其脚本的权限。这称为跨域脚本编写。
    大家注意看红色这句,究竟System.security.allowDomain("mysite.com")是写在movieA.swf还是写在movieB.swf里面呢?根据继续查阅allowDomain(security.allowDomain 方法),System.security.allowDomain("mysite.com")是写在movieB.swf上的(Orz..)
    这样一来...Fp的安全存在的价值大概就是保护用户,保护知识产权...搞了一个下午终于搞懂了...再Orz一下..
    其实对安全问题的研究也不需要很深入...什么时候做什么会出现安全问题呢?Adobe还是很厚道的,只要去翻翻帮助,看看你使用的方法有没有安全性的提示就好了..
    例如在Flash8的帮助中,"ActionScript 语言元素 > 全局函数 > loadVariables 函数"就清清楚楚地说明了会引起相关的安全性的问题...
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/871.html

你可能感兴趣的:(脚本,Security,Flash,FP,actionscript)