`

关于AIR 应用程序沙箱

 
阅读更多

http://help.adobe.com/zh_CN/AIR/1.1/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7f05.html

 

AIR 提供了一个综合全面的安全体系结构,用于定义 AIR 应用程序中的每个文件的相应内部和外部权限。权限会根据文件的源授予给文件,并被分配到称为“沙箱”的逻辑安全组中。

关于 AIR 应用程序沙箱

沙箱的运行时安全模型由 Flash Player 安全模型以及应用程序沙箱组成。不在应用程序沙箱中的文件具有类似 Flash Player 安全模型指定的安全限制。

运行时使用这些安全沙箱定义代码可以访问的数据范围以及可以执行的操作。若要维护本地安全,请将各个沙箱中的文件进行隔离。例如,从外部 Internet URL 加载到 AIR 应用程序的 SWF 文件放置在远程沙箱中,该文件默认情况下不具有通过脚本访问应用程序目录中分配给应用程序沙箱的文件的权限。

下表描述了各种类型的沙箱:

沙箱

说明

应用程序

文件位于应用程序目录中,并且使用完全 AIR 权限运行。

远程

文件来自 Internet URL,并且通过基于域的沙箱规则运行,该规则与适用于 Flash Player 中的远程文件的规则类似。(每个网络域都具有单独的远程沙箱,例如 http://www.example.com 和 https://foo.example.org。)

受信任的本地

文件为本地文件,且用户已使用“设置管理器”或 Flash Player 信任配置文件将其指定为受信任。文件可以从本地数据源读取数据并且与 Internet 通信,但不具有完全 AIR 权限。

只能与远程内容交互

文件为使用网络名称发布的本地 SWF 文件,但尚未受到用户的显式信任。文件可以与 Internet 进行通信,但不能从本地数据源读取数据。此沙箱仅可用于 SWF 内容。

只能与本地文件系统内容交互

文件为未使用网络名称发布的本地脚本文件,且尚未受到用户的显式信任。文件包含尚未受到信任的 JavaScript 文件。文件可以从本地数据源读取数据,但无法与 Internet 进行通信。

本主题重点介绍了应用程序沙箱及其与 AIR 应用程序中的其它沙箱之间的关系。开发人员在使用分配到其它沙箱的内容时,应阅读针对 Flash Player 安全模型的其它文档。请参阅《ActionScript 3.0 编程》(http://www.adobe.com/go/flashCS3_progAS3_security_cn) 文档中的“Flash Player 安全性”一章以及《Flash Player 9 安全性白皮书》(http://www.adobe.com/go/fp9_0_security_cn)。

应用程序沙箱

安装应用程序时,AIR 安装程序文件中包括的所有文件都会安装到用户计算机的应用程序目录中。开发人员可以通过app:/URL 方案参考此目录中的代码(请参阅在 URL 中使用 AIR URL 方案)。在应用程序运行时,应用程序目录树中的所有文件都会分配到应用程序沙箱中。应用程序沙箱中的内容具有 AIR 应用程序的完全访问权限,包括与本地文件系统内容进行交互。

许多 AIR 应用程序只能使用这些本地安装的文件来运行应用程序。但是,不会限制 AIR 应用程序仅加载应用程序目录中的文件,它们可以加载任意源中任何类型的文件。其中包括用户计算机上的本地文件以及可用外部源中的文件(例如本地网络或 Internet 上的文件)。文件类型不会对安全限制产生影响;加载的 HTML 文件与从相同源加载的 SWF 文件具有相同的安全权限。

应用程序安全沙箱中的内容可以访问 AIR API,而其它沙箱中的内容则无法访问。例如,限制air.NativeApplication.nativeApplication.applicationDescriptor属性(该属性返回应用程序的应用程序描述符文件的内容)访问应用程序安全沙箱中的内容。另一个示例是受限制的 API 为 FileStream 类,其中包含用于读取和写入本地文件系统的方法。

《Flex 3 语言参考》中介绍了限制访问应用程序安全沙箱中的内容的 ActionScript API 以及 AIR 徽标。

对于 HTML 内容(位于 HTMLLoader 对象中),所有 AIR JavaScript API(使用 AIRAliases.js 文件时通过window.runtime属性或air对象可用)都可用于应用程序安全沙箱中的内容。其它沙箱中的 HTML 内容无法访问window.runtime属性,因此该内容也无法访问 AIR API。

JavaScript 和 HTML 限制

对于应用程序安全沙箱中的 HTML 内容,在加载代码后使用可将字符串动态转换为可执行代码的 API 时存在一些限制。这样就可以阻止应用程序从非应用程序源(例如潜在不安全网络域)意外插入(及执行)代码。使用eval()函数是一个示例。有关详细信息,请参阅对不同沙箱中的内容的代码限制

对 ActionScript 文本字段内容中的 img 标签的限制

为了阻止潜在仿冒攻击,在应用程序安全沙箱的 SWF 内容中忽略了 ActionScript TextField 对象的 HTML 内容中的img标签。

asfunction 的限制

应用程序沙箱中的内容无法在 ActionScript 2.0 文本字段的 HTML 内容中使用asfunction协议。

无法访问跨域永久性缓存

应用程序沙箱中的 SWF 内容无法使用跨域缓存,这是一项增加到 Flash Player 9 Update 3 的功能。Flash Player 通过此功能可以永久缓存 Adobe 平台组件内容,并根据需要在加载的 SWF 内容中重复使用该内容(无需多次重新加载该内容)。

非应用程序沙箱中的内容的权限

从网络或 Internet 位置加载的文件会分配到远程沙箱中。从应用程序目录外部加载的文件会分配到只能与本地文件系统内容交互只能与远程内容交互受信任的本地沙箱中;具体取决于文件的创建方式以及用户是否通过 Flash Player 全局设置管理器显式信任了文件。有关详细信息,请参阅 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html。

JavaScript 和 HTML 限制

与应用程序安全沙箱中的内容不同,非应用程序安全沙箱中的 JavaScript 内容随时都可以调用eval()函数来执行动态生成的代码。但是,非应用程序安全沙箱中的 JavaScript 存在一些限制。这些限制包括:

  • 非应用程序沙箱中的 JavaScript 代码无法访问window.runtime对象,也无法执行 AIR API。

  • 默认情况下,非应用程序安全沙箱中的内容无法使用 XMLHttpRequest 调用从调用该请求的域之外的其它域加载数据。但是,通过设置包含 frame 或 iframe 中的allowCrossdomainXHR属性,应用程序代码可以授予非应用程序内容执行此操作的权限。有关详细信息,请参阅通过脚本访问不同域中的内容

  • 调用 JavaScriptwindow.open()方法时存在一些限制。有关详细信息,请参阅调用 JavaScript window.open() 方法的限制

有关详细信息,请参阅对不同沙箱中的内容的代码限制

加载 CSS、frame、iframe 和 img 元素的限制

远程(网络)安全沙箱中的 HTML 内容只能从远程域(网络 URL)加载 CSS、frameiframeimg内容。

只能与本地文件系统内容交互的沙箱、只能与远程内容交互的沙箱或受信任的本地沙箱中的 HTML 内容只能从本地沙箱(而不是应用程序或网络 URL)加载 CSS、frameiframeimg内容。

分享到:
评论

相关推荐

    AIR应用开发中文指南(BETA2).pdf

    安装AIR运行时是部署AIR应用程序的基础。运行时环境提供了必要的框架和库,使应用程序能够在不同操作系统上运行,无需针对每个平台进行单独的代码编写或优化。同时,AIR提供了丰富的示例和模板,帮助开发者快速上手...

    使用Adobe AIR开发Android应用程序-英文版

    2. **ActionScript编程**:学习ActionScript的基础语法,这是编写AIR应用程序的主要语言。包括变量、函数、类和对象的概念,以及如何处理事件和动画。 3. **Android特定API**:了解如何使用Adobe AIR提供的API与...

    swift-在实际设备上查看iOS应用沙箱文件系统通过airdrop共享文件

    在iOS平台上,应用程序的数据存储通常是在一个特定的隔离区域,称为“沙箱”(Sandbox)。这个沙箱为每个应用提供了独立的文件系统,确保一个应用无法访问其他应用的数据,以此来保护用户隐私和系统安全。在Swift开发...

    adobe air runtime version 33.1.1.744 for Mac

    安装Adobe AIR运行时后,开发者可以使用Adobe Flex或Flash Builder等工具来创建AIR应用程序,这些应用程序可以直接在用户的Mac上运行,而无需浏览器支持。用户则可以通过App Store或其他渠道下载并安装这些基于Adobe...

    adobe air runtime version 33.1.1.744 for windows

    在安全性方面,Adobe AIR提供了沙箱模型,限制了应用程序对系统资源的访问,以保护用户的计算机安全。然而,用户仍需保持Adobe AIR runtime的更新,以确保最新的安全补丁被应用,防止潜在的安全威胁。 总之,Adobe ...

    AdobeAIR入门教程

    4. **应用程序生命周期**:理解AIR应用程序的启动、运行、暂停、恢复和关闭过程,以及如何处理这些状态的变化。 5. **用户界面设计**:学习使用Flex或HTML/CSS构建用户界面,包括布局管理、组件库的使用、事件处理...

    air中文官方帮助文档.pdf

    3. **安装Adobe AIR SDK**:用于编译AIR应用程序。 ### 五、创建Adobe AIR 应用 1. **创建项目**:在IDE中新建一个Flex项目,并选择“Adobe AIR Application”作为项目类型。 2. **编写代码**:使用MXML和...

    Adobe Air Programming Unleashed

    - **桌面应用程序开发**:通过实例展示如何利用Adobe AIR开发桌面应用程序。 - **游戏开发**:介绍如何使用Adobe AIR和Flash Player来开发跨平台的游戏。 - **多媒体应用**:讲解如何利用Adobe AIR的多媒体支持来...

    AIR bible AIR 宝典

    1. **AIR基础**:介绍AIR的基本架构和工作原理,包括如何在不同操作系统上安装和运行AIR应用程序,以及AIR与Flash Player和桌面环境的交互方式。 2. **开发环境**:阐述如何设置和使用Adobe Flex Builder、Flash ...

    adobe-air.rar_AIR

    2. **桌面功能集成**:AIR应用程序可以访问本地文件系统、硬件设备,如摄像头、麦克风,甚至可以创建桌面快捷方式,提供了与原生桌面应用类似的用户体验。 3. **富互联网应用(RIA)特性**:基于Flash Player技术,...

    adobe air1.1中文版

    2. **本地API集成**:AIR允许应用程序访问操作系统的一些本地功能,如文件系统、网络连接、硬件设备(如摄像头和麦克风)等。 3. **富媒体支持**:由于源自Adobe,AIR对Flash和Flex内容有良好的支持,可以轻松集成...

    air_htmldevguide

    下面将逐一解析这些知识点,并提供详细的解释。 ### 第1章: 关于HTML环境 ...此外,Adobe AIR还提供了对Webkit引擎的支持,这意味...通过全面了解这些概念和技术,开发者将能够构建出既强大又安全的Adobe AIR应用程序。

    Adobe AIR 经典案例2008 Adobe AIR Create Modify Reuse

    6. **桌面集成**:AIR应用程序可以与桌面环境深度集成,如拖放操作、系统托盘、通知等。书中的案例会展示如何利用这些功能提高用户体验。 7. **离线应用和网络状态管理**:Adobe AIR支持离线应用,即使在网络断开的...

    FLEX_AIR教程

    AIR应用程序可以访问本地文件系统、网络、硬件设备,提供更广泛的交互性和用户体验。 3. **AIR-Boot-Camp_DNICKULL_FINAL.pdf**:这个文件很可能是教程的核心部分,可能包含一个详细的AIR编程快速启动课程。它可能...

    Adobe Air html docs

    5. **部署与发布**: 了解如何配置和创建AIR应用程序描述文件(.air或.ane),以及如何通过Adobe AIR发布面板将应用提交到应用商店或进行自定义部署。 6. **安全性**: 理解AIR的安全模型,包括沙箱限制、数字签名和...

    flash as3 Air for ios 应用内支付 IPA ANE

    在移动应用开发领域,Flash AS3 Air for iOS的内购功能是开发者常用的一种技术,用于在应用程序内部提供付费服务或商品。这篇教程将深入探讨如何实现这一功能,并结合ANE(Adobe Native Extensions)来构建IPA(iOS...

Global site tag (gtag.js) - Google Analytics