发布者许可(政策文件):
创建政策文件:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="domainOrIP" />
<allow-access-from domain="*.example.com" />
<allow-access-from domain="*" />
<allow-access-from domain="localhost" />
</cross-domain-policy>
- "*"符号表示给所有源头
授权。
- 为了包含本地范围
作为一个授权源头,一个政策文件必须通过为domain属性指定 * 来显式地信任所有的源头。
- domain指定的IP
和他们等价域名
是不同的
。
公布政策文件:
-
默认的
名字和位置:名字:crossdomain.xml
;位置:网站的根目录
- 如果政策文件在网站根目录
中,它授权对整个网站的访问权
。
- 如果政策文件在网站的一个子目录
中,它授权对该目录及子目录的访问权
,此时需要手工装载这个政策文件
:
Security.loadPolicyFile("http://domainOrIP/pathToPolicyFile");
取得一个政策文件的许可来装载数据
:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.site-b.com" />
<allow-access-from domain="site-b.com" />
</cross-domain-policy>
var urlloader:URLLoader = new URLLoader();
urlloader.load(new URLRequest("http://site-a.com/assets/file.xml"));
取得一个政策文件的许可来把内容作为数据访问
:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.site-b.com" />
<allow-access-from domain="site-b.com" />
</cross-domain-policy>
var loaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
theLoader.load(new URLRequest("http://site-a.com/assets/image.jpg", loaderContext));
trace(theLoader.content);
使用一个政策文件来授权套接字连接
:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.site-b.com" to-ports="3000" />
<allow-access-from domain="site-b.com" to-ports="3000" />
</cross-domain-policy>
var socket:Socket = new Socket();
try {
socket.connect("site-a.com", 3000);
} catch (e:SecurityError) {
trace("Connection problem");
trace(e.message);
}
1. 端口范围
:
to-ports="9100, 9200"
to-ports="10000-11000"
to-ports="*"
2. 如果一个政策文件时取自小于1024
端口的一个套接字,* 表示对任何端口的访问都被授权
如果一个政策文件取自大于或者等于1024
端口的一个套接字,* 表示对于任何大于或者等于1024端口的访问都被授权
3. 当一个政策文件在和所需的套接字连接的不同端口
提供服务时,必须手工装载那个政策文件
,添加以下语句:
Security.loadPolicyFile("xmlsocket://domainOrIP:portNumber");
基于HTTP的政策文件:
必须满足的条件:
- 它必须被命名为crossdomain.xml
- 它必须放置于网页服务器的根目录
中
- 它必须在所需要的套接字连接的域名
或IP地址的端口80
上提供服务
- 在AS3中,它必须通过Security.loadPolicyFile()来手工装载
创建者许可(allowDomian()):
Security.allowDomain("www.sometvnetwork.com", "sometvnetwork.com");
Security.allowDomain("*");
- 只作用于交叉脚本控制
和HTML-to-SWF脚本控制
操作
-
*
符号不能
用作一个子域名
的通配符
:Security.allowDomain("*.example.com
");不行的
- 一个.swf文件可以通过检查被装载的.swf文件的LoaderInfo
对象中的childAllowsParent
变量来判定它是否被授权
导入装载:swf装载swf
如果两个swf来自不同的远程区域
,或者不同的安全沙箱类型,使用下面的方法加载
var loaderContext:URLLoader = new URLLoader();
// 仅当加载AS3编写的SWF文件时才会使用此属性
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
loaderContext.securityDomain = SecurityDomain.currentDomain;
loader.load(new URLRequest("http://site-a.com/assets/file.swf"), loaderContext);
处理安全违规:
要么抛出一个SecurityError
异常,要么调度一个SecurityErrorEvent
.SECURITY
_ERROR
var urlloader:URLLoader = new URLLoader();
urlloader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
urlloader.load(".../index.xml");
有时需要注册LoaderInfo
的事件监听:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorListener);
分享到:
相关推荐
网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...
Flash主要包含三种类型的沙箱:本地沙箱、网络沙箱和外部应用程序沙箱。 1. 本地沙箱:允许Flash内容访问用户的文件系统和执行本地操作,但通常需要用户明确授权。 2. 网络沙箱:这是最常见的沙箱类型,用于在线...
#### 三、FLEX安全沙箱中的资源类型及操作 FLEX安全沙箱机制针对不同类型的资源定义了不同的访问规则。以下是一些常见的资源类型及其操作: - **图形图片格式**:包括JPG、PNG、GIF等格式的图像文件,可以通过`...
安全沙箱主要有三种类型:本地沙箱、网络沙箱和本地_with_networking沙箱。 1. **本地沙箱**:当Flash内容从用户的本地硬盘加载时,它们运行在本地沙箱中,不能访问网络资源,但可以访问本地文件系统和硬件。 2. *...
Flex安全沙箱是Adobe Flex应用程序在运行时遵循的一套安全机制,旨在保护用户的数据和系统安全。这个概念是在Flex 4之后尤其受到关注,因为当时在Internet Explorer中出现了与安全沙箱相关的挑战。沙箱模型类似于...
Microsoft Windows 8.1 和 Windows 10 集成了若干新的缓解措施和安全边界,显著提升了应用层沙箱的安全性,降低了代码执行漏洞所造成的直接危害。然而第三方软件也是 Windows 生态系统的不可分割的一部分,用户基数...
Flash Player出于安全考虑,将内容分为不同的沙箱:本地沙箱、本地与网络交互沙箱和网络沙箱。在AS3中,Socket通信受到沙箱限制,例如,本地内容不能直接连接到非同一域的服务器。为了解决这个问题,可以采用以下...
Flash 分为三个主要的安全沙箱:浏览器沙箱、本地-with-网络沙箱和本地-without-网络沙箱。浏览器沙箱是最严格的,只允许 Flash 内容与同一域名的资源交互;本地-with-网络沙箱允许访问本地文件系统以及网络;本地-...
【安全沙箱:浏览器与操作系统的安全屏障】 在探讨安全沙箱的概念之前,我们需要回顾一下浏览器的历史和架构。早期的浏览器采用单进程架构,所有任务都在一个进程中执行,包括渲染、JavaScript执行、网络加载和用户...
沙箱限制了特定的函数和操作,例如文件创建、网络连接和命令执行,以保护服务器的安全。 2. **文件权限防御**:SAE的文件权限机制旨在阻止非法的文件访问。正常情况下,应用只能访问特定的、被授权的文件路径。 3....
AS3中的安全沙箱主要有三种:`Local with Network`、`Local without Network`和`Remote`。每种沙箱都有不同的权限限制。 - `Local with Network`沙箱允许本地内容访问网络,但不能访问本地文件系统。 - `Local ...
沙箱的安全控制涉及管理员、用户、网络设置和作者设置等利益相关方,他们分别控制权限,包括文件请求、本地数据存储、跨域策略和特定域内容的使用。 【标签】:“安全” 【内容详解】: 1. **安全沙箱机制**: ...
安全沙箱主要有三种类型:本地沙箱、浏览器沙箱和网络沙箱。 1. **本地沙箱**:本地沙箱允许运行本地文件系统上的Flash内容,但限制了与网络和系统资源的交互。这防止了恶意代码对用户电脑的潜在危害。 2. **...
在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...
这是个通用类,里面包含了处理843端口的安全沙箱问题以及socket基本的向服务器send资源问题。 请求方式是,先发整形,然后发id长度,再发id(String) 得到的资源是先得到字符长度,再得到字符串。这个是和后退约定的...
2. 安全访问控制工具对管理者认知和技能要求高。 3. 安全性相对较差。 4. 应用兼容性和系统调用性能较差。 在选择安全沙箱容器时,需要考虑业务需求和场景,选择合适的安全沙箱容器技术。Edge Kubernetes 是一种...
1.安全沙箱容器 2.EdgeKubernetes 3.安全沙箱容器@edge方案 4.新探索 随着云计算边界不断向边缘侧延展,5G 和物联网技术的蓬勃发展给边缘计算带来了巨大机遇的同时,也带来了极大的挑战,传统 runc 容器已无法满足...
2. **类文件校验器**:用于验证加载的类文件是否符合Java语言规范,确保字节码的正确性和安全性。 3. **Java虚拟机(JVM)及语言的安全特性**:提供内置的安全机制,如内存管理、线程同步等。 4. **Java API和安全...