flash安全策略的理解

flash安全策略的理解

11人阅读 评论(0) 收藏 举报

一直以来对flash的安全策略是一头雾水,什么安全沙箱,跨域策略文件一堆东西乱七八糟,搞不清楚。不过纠结到现在已经基本上理解了。

flash的安全问题在官方手册上有足够的解释,这里我就不去去搬条文了,主要写些自己的理解。

其实完全不需要去死啃手册,我们只需要用常识就可以理解flash的安全策略。

所谓安全其实就是私人财产的保护问题,我们自己的财产不能随便被别人侵占或者利用。别人的财产也不能被我们自己随便的侵占和利用。

那么为了达到保护私人财产的目的,首先我们要把界限划出来,也就是说什么是你的财产,什么是我的财产,这个要讲清楚,否则其他都是白扯。

flash 的安全沙箱这一手段就是用来达到这个目的的。一个安全沙箱就划定了一份私人财产。安全沙箱之间的财产是不能随便(即无条件的)相互流通的。但安全沙箱之内的财产则可以(无条件,其实也不完全是无条件,一个例外是不同as版本的跨脚本访问问题,其他例外暂时不知道)相互访问。

当然上面说的只是概念,或者说只是一个虚无的法律,具体到实际则需要一个执法者,而这个执法者就是flashplayer(一定要与swf这个概念区分开)。而那些swf,图片,文本等资源,则是我们的财产。fp加载这些财产时根据这些财产的来源在逻辑上将他们划分到不同的安全域。

上面的文字已经将flash的安全策略问题解释了大概。接下来的问题是不同沙箱之间的财产可以流通的具体的条件,这个也是复杂的地方所在。

具体的条件依赖于两个方面:1、访问者与被访问者之间的关系;2、财产的具体类型。

为了解释第一个方面,我们建立一个模型。一个最简单但却能完全解释问题的模型如下:模型中有三个安全沙箱,其中一个是本地沙箱,另外两个是不同的网络沙箱。如图:

在这个模型中共有三种访问关系

1、本地访问远程

2、远程访问本地

3、远程互访

其中只有第二种访问是被完全禁止的,即远程沙箱中的资源无法访问本地。

而其他两种情况则要视具体情况而定,具体地:

首先要看加载的东西是内容还是数据(内容和数据这两个概念的解释官方文档上有),如果是内容则fp不需要被加载方授权,如果是数据则需要被加载方授权。

然后看加载方式否是本地,如果是本地则fp需要主动加载方进行授权,如果是远程之间加载则fp不需要主加载方授权。这是解释得通的。因为如果swf资源在本地,那么它可能拥有(如果我们把他发布成只访问本地的话)本地所有资源的访问权限,这等于是给不法分子开了一个入口,但不要紧,只要我们没有把这个swf设为信任的,那么他就逃不掉,也就是说资源有进口无出口。

当然我们也可以选择将swf加入本地的另一种安全域,即发布成只访问网络的,但这是堵住了他的入口,开放了他的出口。依然是安全的。

当然我们也可以手动的将swf加入信任让他进出口都开放,或者用应用程序来讲swf加入信任。具体的可以看官方文档上的说明。

最后如果资源都处于网络沙箱中,则fp不需要主加载方授权,因为相对于本地,网络沙箱中的资源都是他人的财产,没有必要去关心他人的事情。

转载于:https://www.cnblogs.com/xiayong123/archive/2011/09/22/3717220.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ grammar】nullptr and Dynamic Memory Allocation (空指针和动态内存分配)

空指针 1.1. 0带来的二义性问题 C03中,空指针使用“0”来表示。0既是一个常量整数,也是一个常量空指针。C语言中,空指针使用(void *)0来表示有时候,用“NULL”来表示空指针(一种可能的实现方式是#define NULL 0) 1.2. C标准化委…

No module named ‘skimage.metrics‘在Anaconda3中的解决方法

1,进入Anaconda Prompt 2,进行安装: pip install scikit-image 3,若还是报错,尝试进行更新一下 pip install scikit-image --upgrade

【C++ grammar】数据类型转换、列表初始化

布尔类型 C语言在其标准化过程中引入了bool、true和false关键字,增加了原生数据类型来支持布尔数据。 布尔类型的大小(所占的存储空间)依赖于具体的编译器实现。也可以用 sizeof运算符得到其占用的空间 Conversion between bool and int 0…

Python对自定义离散点进行指定多项式函数拟合

自定义离散点进行指定多项式函数拟合 用户自己自己输入坐标点,拟合函数可根据用户输入的多项式的最高次方进行自动拟合函数,拟合方法采用最小二乘法进行函数拟合。 (1,2),(2,5),(3,10),(4,17),(5,26),(6,37)(7,50),(8,65),(9,82) 很显然是函数为二次函…

【C++ grammar】C++简化内存模型

1、stack(栈) 编译器自动分配内存(函数内部定义得局部变量、形参) 2、堆(Heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收(new和delete) …

Effect of Diethylene Glycol on the Inkjet Printability of Reactive Dye Solution for Cotton Fabrics.

Effect of Diethylene Glycol on the Inkjet Printability of Reactive Dye Solution for Cotton Fabrics 二乙二醇对棉织物活性染料溶液喷墨印刷性能的影响 Diethylene Glycol 二乙二醇 Inkjet Printability 喷墨印刷性能 Reactive Dye Solution 活性染料溶液 Cotton Fabric…

Silverlight4.0教程之使用CompositeTransform复合变形特效实现倒影

微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面: 开发工具增强:Visual Studio 2010…

2019年的wps计算机考试题,2019年3月计算机一级WPS模拟题及答案(2.21)

【导语】2019年3月计算机一级考试备考正在进行中,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2019年3月计算机一级WPS模拟题及答案(2.21),把握机会抓紧练习吧。如想获取更多计算机一级考试模拟题及备考资料&#xff…

Python求解多项式方程

例如:二次函数:f(x) 10x^2 - 14x 22,依次求解x1,2,3,4,5,6时函数表达式所对应的函数值。 import numpy as np #f(x) 10*x^2 - 14x 22 p np.array([10,-14,22])#这里存放的是系…

CSS中的border-radius属性

CSS | 边界半径属性 (CSS | border-radius Property) The border-radius property is commonly used to convert box elements into circles. We can convert box elements into the circle element by setting the border-radius to half of the length of a square element. …

【C++ grammar】Enhancement for Type System (C++11 对类型系统的增强)

数据类型 (Data type) int, long int, double, struct, char *, float [], int (*f)()… 计算机程序构造块 计算机程序构造块是不同大小粒度的计算机程序组成部分,它包括变量、表达式、函数或者模块等。 类型系统 (Type System) 类型系统:在编程语言中…

一、织物组织相关基本概念

一、织物形成的五大运动:开口、引纬、打纬、送经、卷取 开口运动(先开口让织物形成上下两层) 引纬运动(在上下两层经纱之间进行引纬,把纬纱穿入上下两层经纱之间,从而实现经纱纬纱之间的交织) …

达尔豪斯大学计算机科学世界排名,达尔豪斯大学成了全加最好,这又是个什么排名?...

原标题:达尔豪斯大学成了全加最好,这又是个什么排名?没有“八大”的知名,没有“常春藤”的受宠,虽然它只是众多名校中的普通一个,但只要你对它有个稍微的了解,你一定会爱上它的!它虽…

tag标签记录

看到项目代码中有一个自定义的tag标签,想起以前自己写过的标签,竟然忘记的差不多了,手一痒,自己写个简单的tag标签,回顾一下历史知识 首先建一个servlet工程,然后写个index.jsp,项目跑起来&…

LeetCode 53:最大子序和解题以及优化思路(第一次独立刷题记录)

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现…

三、规则组织的衍生组织——经山形组织数学模型的建立

基础概念公式推到可参考该专栏下的前几篇博文。 经山形组织图: 左半部分:,3上2下1上2下,右斜,飞数为1 右半部分:,3上2下1上2下,左斜,飞数为-1 左右两部分只有飞数是相…

储存过程生成器

/Files/qanholas/SPGen_ReleaseCandidate1_Binaries.zip ---- Dropping stored procedure sp_费用表_SelectAll : --IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id OBJECT_ID(N[sp_费用表_SelectAll]) AND OBJECTPROPERTY(id, NIsProcedure) 1)DROP PROCEDURE [dbo].[sp…

LeetCode 121:买卖股票的最佳时机 思考分析

题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出…

四、规则组织的衍生组织——经向破斜组织数学模型的建立

基础概念公式推到可参考该专栏下的前几篇博文。 经向破斜组织图: 左半部分:,3上2下1上2下,右斜,飞数为1 右半部分:,2上1下2上3下。左斜,飞数为-1 左右两部分,经纬纱组织…

【数据结构基础】【散列表】

散列表也叫做哈希表(hash table),这种数据结构提供了键(key)和值(value)的映射关系。只要给出一个key,就可以高效查找它匹配的value,时间复杂度接近O(1); 哈希函数 哈希函数通过某种方式,把key和数组下标进行转换。 在java中,每…