Flash安全域学习笔记
参考:
深入理解Flash Player的安全域(Security Domains)
1.什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.example.org),那么我们就可以认为它们是相同的域。比如 http://www.example.org/index.html和http://www.example.org/sub/index.html是同域,而http://www.example.org, https://www.example.org, http://www.example.org:8080, http://sub.example.org中的任何两个都将构成跨域。
摘自http://www.woiweb.net/10-cross-domain-methods.html
2.如何在本地测试跨域访问?
编辑 hosts 文件,虚拟出多个域名出来。如:
127.0.0.1 www.1.com
127.0.0.1 www.2.com
新建一个AS工程,生成两个swf,比如A.swf和B.swf。然后在A中加载B即可,代码如下:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, init);
var url:String = "http://www.1.com/B.swf";
loader.load(new URLRequest(url));
function init(event:Event):void {
trace(loader.content);
}
由于B属于www.1.com域,当我们打开www.2.com/A.swf或localhost/A.swf时就会报出安全错误。
SecurityError: Error #2121: 安全沙箱冲突:Loader.content:http://www.2.com/A.swf 不能访问 http://www.1.com/B.swf。可以通过调用 Security.allowDomain 来避免此冲突。
at flash.display::Loader/get content()
at Function/DomainTest/private:domainTest/init()[E:\cuixuWorkSpace\SecurityTest\src\A.as:23]
解决办法就是在B.swf中添加:
Security.allowDomain("www.2.com");
3.由于不可执行文件(也就是非SWF文件)不能调用allowDomain代码,所以这类文件的信任机制在Flash Player中有不一样的处理方法。这就是跨域(cross-domain)策略文件派上用场的地方。跨域策略文件是一个放在网站的根域名下的命名为crossdomain.xml的XML文件。和allowDomain类似,定义了一组可以被Flash Player加载的安全网站域名。一个简单的跨域策略文件的例子如下:
http://example.com/crossdomain.xml:
<?xml version="1.0"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="by-content-type"/>
<allow-access-from domain="*.example.com"/>
<allow-access-from domain="www.example-partner.com"/>
</cross-domain-policy>
这表示允许来自example.com的任意子域或www.example-partner.com的SWF文件加载example.com下的文件。
4.本地安全域
在硬盘上运行的SWF文件同样有自己的安全域。本地安全域有自己独特的行为,共分为4种安全沙箱类型:local-with-file, local-with-network, local-trusted, and application for AIR(本文不详细讨论AIR)。再加上网络上的SWF,一共有5种安全沙箱。
对于本地的信任文件,相同的问题是我们没有地方来保存跨域策略文件。把SWF或者包含SWF的文件夹添加到信任位置的话只需要添加路径到Flash Player的#Security\FlashPlayerTrust下的.cfg文件就可以了。(C:\Documents and Settings\[username]\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust)
这些文件就像你本地的跨域策略文件一样。当Flash Player读取的时候,信任授权给SWF,并覆盖SWF文件中关于本地访问权限的标识,从而允许受信的SWF能够同时访问本地和网络。
分享到:
相关推荐
【Flash8学习笔记】 Flash8 是一款经典的动画创作软件,广泛应用于网页设计、游戏开发以及交互式内容制作。本笔记旨在记录学习过程中的一些关键知识点,同时也适用于初学者参考。 一、资源与工具 1. 动画成品分享...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
网络与信息安全技术课程学习笔记 网络与信息安全技术课程学习笔记 网络与信息安全技术课程学习笔记
《信息安全工程师学习笔记》是针对软考中级信息安全工程师考试的一份详实的学习资料,这份压缩包文件包含了丰富的知识内容,旨在帮助考生系统性地理解和掌握信息安全领域的核心概念、原理和实践技能。以下将对这份...
信息安全工程师备考学习笔记,全书整理,信息安全工程师备考学习笔记,全书整理信息安全工程师备考学习笔记,全书整理,信息安全工程师备考学习笔记,全书整理信息安全工程师备考学习笔记,全书整理,信息安全工程师...
CCNA学习笔记 CCNA学习笔记 CCNA学习笔记
HCIA HCIP 安全入门学习笔记 HCIA HCIP 安全入门学习笔记是一份关于 HCIA HCIP 安全认证的学习笔记,涵盖了安全入门的基本概念、命令行简介、防火墙命令行、IP 地址、子网掩码、MAC 地址、端口号等知识点。 一、...
flash学习笔记.pdf
软考信息安全工程师教程学习笔记,是从希赛网上面下载整理的,压缩包里面一共有8个文档,有需要的可以下载!
本文是关于STM32 RT-Thread操作系统中添加SPI Flash设备的学习笔记,主要涉及STM32F407vet6芯片和RT-Thread组件的SPI驱动及SFUD库的使用。首先,我们要了解SPI Flash的两种型号:W25X40CL和W25Q64。它们分别具有不同...
希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
AS3学习笔记FlashDevelop平台搭建配置 AS3学习笔记FlashDevelop平台搭建配置是关于如何搭建和配置FlashDevelop平台的学习笔记。下面是对该笔记中所涉及到的知识点的详细说明: 1. FlashDevelop平台简介 Flash...
"Web 安全学习笔记" Web 安全学习笔记是关于网络安全的综合性学习笔记,涵盖了 Web 安全的基础知识、常见威胁、防御策略等方面的内容。下面将详细介绍该笔记中所涉及的知识点: 一、Web 安全基础 * Web 安全定义...
人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...
2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip...
PHP个人学习笔记
docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...
ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1
Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...