`
sjkgxf7191
  • 浏览: 257104 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

安全沙箱(三):发布者许可(政策文件)和创建者许可(allowDomian())

阅读更多

发布者许可(政策文件):

 

创建政策文件:

<?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);
分享到:
评论

相关推荐

    在Flex中发布地图 程序报错 SecurityError: Error #2048: 安全沙箱冲突,只需要下载添加这个就可以

    网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...

    flash安全沙箱汇总

    Flash主要包含三种类型的沙箱:本地沙箱、网络沙箱和外部应用程序沙箱。 1. 本地沙箱:允许Flash内容访问用户的文件系统和执行本地操作,但通常需要用户明确授权。 2. 网络沙箱:这是最常见的沙箱类型,用于在线...

    FLEX安全沙箱实用指南

    #### 三、FLEX安全沙箱中的资源类型及操作 FLEX安全沙箱机制针对不同类型的资源定义了不同的访问规则。以下是一些常见的资源类型及其操作: - **图形图片格式**:包括JPG、PNG、GIF等格式的图像文件,可以通过`...

    as3 安全沙箱 处理办法

    安全沙箱主要有三种类型:本地沙箱、网络沙箱和本地_with_networking沙箱。 1. **本地沙箱**:当Flash内容从用户的本地硬盘加载时,它们运行在本地沙箱中,不能访问网络资源,但可以访问本地文件系统和硬件。 2. *...

    全面认识Flex安全沙箱

    Flex安全沙箱是Adobe Flex应用程序在运行时遵循的一套安全机制,旨在保护用户的数据和系统安全。这个概念是在Flex 4之后尤其受到关注,因为当时在Internet Explorer中出现了与安全沙箱相关的挑战。沙箱模型类似于...

    沙箱逃逸:来自安全软件的鼎力相助.pdf

    Microsoft Windows 8.1 和 Windows 10 集成了若干新的缓解措施和安全边界,显著提升了应用层沙箱的安全性,降低了代码执行漏洞所造成的直接危害。然而第三方软件也是 Windows 生态系统的不可分割的一部分,用户基数...

    java和as3 socket通信 解决安全沙箱问题

    Flash Player出于安全考虑,将内容分为不同的沙箱:本地沙箱、本地与网络交互沙箱和网络沙箱。在AS3中,Socket通信受到沙箱限制,例如,本地内容不能直接连接到非同一域的服务器。为了解决这个问题,可以采用以下...

    java ,c#,delphi 解决flash安全沙箱问题

    Flash 分为三个主要的安全沙箱:浏览器沙箱、本地-with-网络沙箱和本地-without-网络沙箱。浏览器沙箱是最严格的,只允许 Flash 内容与同一域名的资源交互;本地-with-网络沙箱允许访问本地文件系统以及网络;本地-...

    35-安全沙箱:页面和系统之间的隔离墙_For_vip_user_0011

    【安全沙箱:浏览器与操作系统的安全屏障】 在探讨安全沙箱的概念之前,我们需要回顾一下浏览器的历史和架构。早期的浏览器采用单进程架构,所有任务都在一个进程中执行,包括渲染、JavaScript执行、网络加载和用户...

    SAE云服务安全沙箱绕过4(绕过文件权限防御)1

    沙箱限制了特定的函数和操作,例如文件创建、网络连接和命令执行,以保护服务器的安全。 2. **文件权限防御**:SAE的文件权限机制旨在阻止非法的文件访问。正常情况下,应用只能访问特定的、被授权的文件路径。 3....

    flash 安全沙箱处理集合

    AS3中的安全沙箱主要有三种:`Local with Network`、`Local without Network`和`Remote`。每种沙箱都有不同的权限限制。 - `Local with Network`沙箱允许本地内容访问网络,但不能访问本地文件系统。 - `Local ...

    源于FLEX中的安全沙箱问题

    沙箱的安全控制涉及管理员、用户、网络设置和作者设置等利益相关方,他们分别控制权限,包括文件请求、本地数据存储、跨域策略和特定域内容的使用。 【标签】:“安全” 【内容详解】: 1. **安全沙箱机制**: ...

    ActionScript 3.0安全沙箱及相关问题资料

    安全沙箱主要有三种类型:本地沙箱、浏览器沙箱和网络沙箱。 1. **本地沙箱**:本地沙箱允许运行本地文件系统上的Flash内容,但限制了与网络和系统资源的交互。这防止了恶意代码对用户电脑的潜在危害。 2. **...

    ArcGIS API for Flex开发WebGIS中的安全沙箱问题

    在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...

    AS3.0安全沙箱 843策略文件

    这是个通用类,里面包含了处理843端口的安全沙箱问题以及socket基本的向服务器send资源问题。 请求方式是,先发整形,然后发id长度,再发id(String) 得到的资源是先得到字符长度,再得到字符串。这个是和后退约定的...

    安全沙箱容器在边缘计算场景的实践.pptx

    2. 安全访问控制工具对管理者认知和技能要求高。 3. 安全性相对较差。 4. 应用兼容性和系统调用性能较差。 在选择安全沙箱容器时,需要考虑业务需求和场景,选择合适的安全沙箱容器技术。Edge Kubernetes 是一种...

    安全沙箱容器在边缘计算场景的实践.pdf

    1.安全沙箱容器 2.EdgeKubernetes 3.安全沙箱容器@edge方案 4.新探索 随着云计算边界不断向边缘侧延展,5G 和物联网技术的蓬勃发展给边缘计算带来了巨大机遇的同时,也带来了极大的挑战,传统 runc 容器已无法满足...

    基于沙箱的Java安全体系结构

    2. **类文件校验器**:用于验证加载的类文件是否符合Java语言规范,确保字节码的正确性和安全性。 3. **Java虚拟机(JVM)及语言的安全特性**:提供内置的安全机制,如内存管理、线程同步等。 4. **Java API和安全...

Global site tag (gtag.js) - Google Analytics