- 浏览: 107358 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gogole_09:
zyandu 写道怎么不见大名鼎鼎的MySQL数据库喃 这个跟 ...
J2EE学习中一些值得研究的开源项目(TURN) -
zyandu:
怎么不见大名鼎鼎的MySQL数据库喃
J2EE学习中一些值得研究的开源项目(TURN) -
zcq100:
qq ^[1-9]\d{4-10}$
常用正则表达式[收藏] -
optimism_best:
收藏了,有用
常用正则表达式[收藏] -
likeblood:
这里非原创的文章会被和谐的还是看看发帖规则的好
常用正则表达式[收藏]
掌握安全模型
安全模型从as2开始一直都是学习上的拦路虎,as3安全模型比起as2更加复杂。凡是包括加载与通信的行为,如swf文件之间的通信,swf与网页之间的通信,XMLSocket或webService等都受到安全机制的限制。在帮助文件中随时会提醒你注意安全模型,并且称作焦点问题,最大的问题是当发布运行程序时时不时跳出一个安全对话框,让初学者不知所措。安全性问题确实很烦人,adobe也不愿意搞的复杂,但是没办法,因为——人心太坏了,总是有些人要干坏事,不得不建立法律来限制这些人。经过整理,我尽量按照能够接受的方式按顺序讲解,能让看完教程的人不再为安全问题迷惑和烦恼的是写这教程的目标。
本地和远程:
1.本地和远程文件:
本机上的swf文件和在本地网页中嵌入的本地swf是本地文件,服务器上的swf或者服务器页面嵌入的swf文件是远程文件。
2.本地和远程访问:
使用file协议或路径名访问是本地访问,通过http协议或其它协议访问是网络访问。
关于中文路径:最好保证路径为英文名称。flash把路径名统一使用网络编码,由于操作系统编码环境的区别可能导致中文路径有出现问题。即使在同一个文件夹下,也可能因为文件夹名称为中文载不进来。因为as3可能会把相对路径转化为绝对路径。
安全沙箱:
as3中共有4种沙箱类型:
Security.REMOTE:
远程文件被放入这个沙箱中。Security.REMOTE不能访问访问本地数据。远程之间遵守跨域安全策略。页面或容器有能力与flash控件通信。
Security.LOCAL_WITH_FILE:
可以访问本地数据但不能以任何形式访问网络,包括:不能用url链接,不能载入远程数据。flash控件不能跟页面或容器通信。本地数据不能以任何方式发送到网络。
Security.LOCAL_WITH_NETWORK:
允许本地文件访问网络。访问网络要遵守跨域机制。不能以任何方式访问本地内容。
Security.LOCAL_TRUSTED:
既可以访问本地内容又可以访问网络。前提是被加入信任位置。调式模式和生成的exe也是这个级别。因为调试和运行exe都是用户主动的行为,被看作用户认可的。
除此之外:
远程沙箱中的文件始终不能访问本地。
位于相同沙箱中的资源才能互相访问。
绕过沙箱:
若想绕过flash安全机制进行数据交换。只有寻求第三方――服务器脚本。通过服务器脚本互相交换数据。但这样也要遵守脚本之间的安全机制,而且不能进行文件交流。
SecurityDomain类
SecurityDomain类基于Object,使用import flash.system.SecurityDomain声明。SecurityDomain类是单例模式。只能使用静态属性表示当前安全沙箱。当swf跨域通信时,可以把跨域沙箱中的swf载入到本地安全沙箱中。
属性:
SecurityDomain.currentDomain:SecurityDomain:
当前安全域
跨域访问机制:
在服务器上,同一个域中的文件、数据或者swf可以任意访问。若要跨域访问需被授权。注意不同域名即使映射到相同IP地址也会被看成两个域。IP地址名和通过解析的地址也被看作两个域。有两种授权方式:策略文件和作者授权。
策略文件:
策略文件声明某个域中的文件可以被指定域访问。策略适用于所有形式的访问。是个xml文件,格式如:
<cross-domain-policy>
<allow-access-from domain=www.someSide.com secure=false/>
<allow-access-from domain="*"/>
</cross-domain-policy>
策略文件中可以使用通配符。使用*通配符表示能被所有网站访问。secure用于https协议与http互相访问。false表示允许互相访问。
默认策略文件:
默认策略文件放在网站根目录下面名字必须为crossdomain.xml。
加载策略文件:
若觉得默认策略文件给服务器维护造成影响。可放到子域中,用System.security.loadPolicyFile(url)来加载。
策略文件类型:
策略文件分为页面策略文件和套接字策略文件。套接字策略文件需要指定端口,如:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="507" />
<allow-access-from domain="*.example.com" to-ports="507,516" />
<allow-access-from domain="*.example2.com" to-ports="516-523" />
<allow-access-from domain="www.example2.com" to-ports="507,516-523" />
<allow-access-from domain="www.example3.com" to-ports="*" />
</cross-domain-policy>
由于flashPlayer只检测套接字策略文件相同端口上的策略文件,而策略文件一般放入服务器中采用http访问,这时只能使用默认策略文件并且使用Security.loadPolicyFile来加载,如:
Security.loadPolicyFile("http://socketServerHost.com/crossdomain.xml")
作者授权:
有时候只想开放某个swf文件而不是整个域中的数据,作者可以使用Security.allowDomain( )在swf中授权。作者授权但并不代表互相通信。除非互相授权。
Security类
Security类基于Object,使用import flash.system.Security声明,Security类是个静态类,用于处理安全访问。
属性:
Security.sandBoxType:String
安全沙箱类型。使用它的静态常量表示。对应上述的4中沙箱类型:
Security.REMOTE,
Security.LOCAL_WITH_FILE,
Security.LOCAL_WITH_NETWORK,
Security.LOCAL_TRUSTED
Security.exactSetting:Boolean
是否精确匹配域,默认为true。精确匹配指不忽略域名中的机器名,如www.flash.com与john.flash.com被看作不同的域。
方法:
Security.allowDomain(…domains):void
在swf中允许指定域访问。多个参数表示多个域,如Security.allowDomain("www.adobe.com","www.macromedia.com","www.flash.com");
Security.allowInsecureDomain(…domains):void
允许https协议的域访问。
Security.loadPolicyFile(url:String):void
加载策略文件。当不使用默认策略文件时需要加载。
Security.showSettings(panel:String = "default"):void
显示安全设置面板。
应用程序域:
允许跨域加载swf后,还可能出现加载的swf中的类与主类相同而产生冲突。为此安全模型把加载的swf类用应用程序域划分。安全域为树形结构。加载的应用程序域可以是文档类应用程序域的子域。文档类的父级安全域为系统安全域。系统安全域包含所有flashPlayer类。为了为我们提供灵活的访问性,as3允许指定载入swf的位置是任何应用程序域。加入子集应用程序域的文件能够直接访问父级应用程序域。但父级必须使用getDefinition方法访问子集应用程序域。加入到文档类应用程序域的文件父级和子集可以直接访问但可能会产生同名冲突。加载到系统应用程序域则被自动划分,必须都使用getDefinition方法互相访问。
ApplicationDomain类
ApplicationDomain基于Object类,使用import flash.system.Application声明。表示应用程序域。
属性:
currentDomain:ApplicationDomain
当前应用程序域。
parentDomain:ApplicationDomain
父级应用程序域。
方法:
getDefinition(name:String):Object
从通过名称从应用程序域中获取类,命名空间或函数。
hasDefinition(name:String):Object
指定名称的定义在应用程序域中是否存在。
设置权限
必要时,我们想使用Security.LOCAL_TRUSTED沙箱进行本地数据和远程进行通信。可以更改本机flashPlayer配置文件或添加信任位置达到目的。比如使用安装程序在信任位置添加文件。但是操作必须被授权。as3的权限层次如图:
管理员和用户设置本地权限:
管理员设置:
系统管理员可以修改mms.cfg配置文件和设置全局flash player信任目录。mms.cfg为flashPlayer启动时的安全信息配置文件,可以限制数据加载,隐私控制,播放器更新,本地文件安全性,全屏模式,旧版文件支持6大功能。但最好不要动这个文件,因为影响太大了。全局信任目录中的地址能够使所有用户使用Security.LOCAL_TRUSTED沙箱。全局信任目录以及mms.cfg路径在C:\windows\system32\Macromed\Flash\FlashPlayerTrust下。
用户设置:
用户也有自己的配置文件和信任目录。在
C:\Documents and Settings\xin\Application Data\Macromedia\
Flash Player\#Security\FlashPlayerTrust下。用户也可以直接使用设置管理器来代替修改配置文件。设置管理器在adobe提供的网页上设置,地址为www.adobe.com/go/settingsmanager_cn。里面说明很详细,配置起来也很简单。如图:
这里选择始终允许可以禁止弹出那个烦人的警告框。
网站设置和作者设置为网络权限:
网站设置即创建跨域文件。作者设置即使用Security.allowDomain()方法。
限制网络API
通过设置flash控件的alowNetworking可以限制as脚本与网络的通信。值如下:
"all"─允许使用所有as中的网络 API 默认值。
"internal"─不能调用浏览器导航或浏览器交互 API。
"none"─ 禁止使用任何网络通信,包括调用API,swf之间通信,超链接和使用共享库。
允许脚本访问:
允许as中的网络API后,还要设置flash控件的allowScriptAccess,才能调用容器API或网页脚本。allowScriptAccess值如下:
“sameDomain”:swf与网页必须位于同一域。才能访问脚本。默认值。
“always”:不限制脚本访问。
“never”:禁止脚本访问。
全屏安全限制:
要使用全屏模式必须把flash控件的allowFullScreen属性设置为true。为防止恶意用户打开网页自动全屏,只有flash控件接受了鼠标事件或键盘事件后猜允许全屏。通过dispachEvent发出的事件是不被认可的。
掌握了上述安全机制后,再看到非配到帮助文件各个角落中的安全问题强调不必去理会了。它们都没有超出这些知识点。
发表评论
-
J2EE学习中一些值得研究的开源项目(TURN)
2010-06-22 11:10 1031这篇文章写在我研究J ... -
实用代码大全
2009-08-21 13:37 940事件源对象 event.srcElement.tagName ... -
jsp输出静态的图片
2009-08-21 12:21 12082个方式,jsp中直接输出 ... -
java web验证码生成总结(包括servlet、jsp和struts2实现)
2009-08-21 12:19 1777一、使用纯Servlet实现验证码 (1)在web.xml配 ... -
java中相对路径和绝对路径问题总结
2009-08-06 13:51 9141.基本概念的理解 ... -
开发人员Unix基础
2009-08-03 13:41 726Unix系统永远只会越来越多,开发人员就没必要特意学 ... -
SpringSide 团队的编码规范
2009-08-03 11:28 1106前言 本文档反 ... -
网站注入与防范的方法总结
2009-07-31 16:49 6671.首先我会检查一下服务器配置,重新配置一次服务器安全,可以参 ... -
小技巧给网页减肥-让网站访问提速
2009-07-31 14:13 837对于网站设计师来讲,网站的访问速度甚至比内容还重要。就算网站内 ... -
静态html文件js读取url参数
2009-07-30 14:47 1642静态html文件js读取url参数 一、字符串分割分析法。 ... -
SQL查询语句的各类联接
2009-07-30 14:30 867inner join 内联接(左右不为Null ... -
分享:java经典题目
2009-07-30 10:40 835l JBS 1.列举出 ... -
Java 三种模型,四种策略
2009-07-29 10:14 1126混淆事务模型与事务策略是一个常见的错误。本系列关于 事务策略 ... -
提升JSP应用程序的七大绝招
2009-07-28 09:43 729本文讲述了调 ... -
如何解决Java语言的10大问题
2009-07-28 09:40 9781、缺少闭包(closure) ... -
如何有效防止Java源程序被人偷窥
2009-07-28 09:34 925Java程序的源代码很容易被别人偷看,只要有一个反编译 ... -
HTTP请求模型简介
2009-07-24 09:50 783一、连接至Web服务器一 ... -
测试用例的几种设计方法
2009-07-23 12:19 1100一、等价类划分 等价类划分主要适用于单个输入条件,输入 ... -
JAVA强大的基础功能-------Java Reflection
2009-07-23 10:13 792Java Reflection-JAVA反射 Reflect ... -
浅谈Java中的垃圾回收机制
2009-07-21 13:41 11331.垃圾回收是一种动态 ...
相关推荐
在IT行业中,安全沙箱是一种重要的安全机制,尤其在Flash技术中扮演着核心角色。Flash安全沙箱的主要目的是为了限制并隔离运行的Flash内容,防止它们对用户系统造成潜在的危害。下面将详细介绍Flash安全沙箱的基本...
### FLEX安全沙箱实用指南 #### 一、引言 在进行FLEX开发时,了解和掌握FLEX的安全沙箱机制对于确保应用程序的安全性至关重要。本文将详细介绍FLEX安全沙箱的相关概念及其应用场景,帮助开发者更好地理解如何在...
在AS3中,安全沙箱是一个关键概念,它是为了保护用户系统免受恶意代码侵害而设计的安全机制。安全沙箱主要有三种类型:本地沙箱、网络沙箱和本地_with_networking沙箱。 1. **本地沙箱**:当Flash内容从用户的本地...
Flex安全沙箱是Adobe Flex应用程序在运行时遵循的一套安全机制,旨在保护用户的数据和系统安全。这个概念是在Flex 4之后尤其受到关注,因为当时在Internet Explorer中出现了与安全沙箱相关的挑战。沙箱模型类似于...
1.安全沙箱容器 2.EdgeKubernetes 3.安全沙箱容器@edge方案 4.新探索 随着云计算边界不断向边缘侧延展,5G 和物联网技术的蓬勃发展给边缘计算带来了巨大机遇的同时,也带来了极大的挑战,传统 runc 容器已无法满足...
在IT行业中,安全沙箱是一种重要的安全机制,用于限制应用程序的权限,防止它们对系统造成潜在的危害。在 Flash 技术中,安全沙箱的概念尤为关键,因为它允许 Flash 内容在网页上运行,同时限制了其对用户计算机的...
网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...
安全沙箱容器在边缘计算场景的实践 安全沙箱容器是在边缘计算场景中的一种实践,旨在解决容器化应用程序的安全问题。随着容器技术的成熟和稳定,安全沙箱容器的需求也在增加。根据 Gartner 预测,2019 年一半以上的...
要要安全沙箱是一款免费国产沙箱软件,为用户提供方便,专业,纯粹的沙箱产品。用户可以在要要安全沙箱环境中运行浏览器,软件等程序,沙箱中运行和程序不会对系统和电脑产生任何的实际的更改和影响,程序运行所产生...
本文将深入探讨如何实现这两种语言间的Socket通信,并解决在Flash Player的安全沙箱问题。 首先,让我们理解什么是Socket通信。Socket是网络编程中的一个概念,它允许两个程序通过TCP/IP协议进行双向通信。在Java中...
在IT领域,尤其是在Flash开发中,安全沙箱是一个至关重要的概念。它是一种设计机制,用于限制ActionScript(AS)代码的执行权限,以保护用户的计算机系统免受恶意代码的侵害。安全沙箱允许Flash内容在特定的安全环境...
在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...
标题中的“绕过安全沙箱获取音铺CrossSandBoxForSpectrum”暗示了这是一个关于网络安全和应用程序隔离技术的讨论,特别是针对音频处理软件或服务。安全沙箱是一种计算机安全机制,用于限制应用程序的运行权限,防止...
这是个通用类,里面包含了处理843端口的安全沙箱问题以及socket基本的向服务器send资源问题。 请求方式是,先发整形,然后发id长度,再发id(String) 得到的资源是先得到字符长度,再得到字符串。这个是和后退约定的...
在ActionScript 3.0中,安全沙箱是一个关键的概念,用于限制不同来源的内容之间的交互,以保护用户的隐私和系统安全。安全沙箱主要有三种类型:本地沙箱、浏览器沙箱和网络沙箱。 1. **本地沙箱**:本地沙箱允许...
QQ电脑管家的安全沙箱功能是一种高级的保护技术,旨在为用户提供一个隔离的环境来执行可能存在风险的程序,如浏览可疑网站、观看不安全的视频或试用未经验证的软件。这个功能的核心理念在于,它创建了一个虚拟空间,...
Sandboxie(英译“沙盘”)允许你在...可用来保护浏览网页时真实系统的安全,也可以用来清除上网、运行程序的痕迹,还可以用来测试软件,测试病毒等用途。即使在沙盘进程中下载的文件,也可以随着沙盘的清空而删除。
【标题】:“源于FLEX中的安全沙箱问题” 【描述】:在FLASH PLAYER中,安全沙箱是一个关键的安全性组件,它将资源逻辑地分组,以限制各个FLASH应用程序能够执行的操作和访问的资源。安全沙箱确保了各应用程序与...
本文主要讨论的是一个关于SAE(Sina App Engine)云服务中的安全问题,涉及Java安全沙箱的绕过。SAE是新浪提供的一个云服务平台,为用户提供PHP和JAVA等环境来构建网站。为了保护云上的用户免受恶意攻击,如DDoS...