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.pswp.cn/news/378160.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378160.shtml
英文地址,請注明出處:http://en.pswp.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標準化委…

yum update Transaction Check Error

update系統時,發現其中一臺server居然提示: Transaction Check Error:file /usr/lib/perl5/5.8.8/CGI.pm from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386file /usr/lib/perl5/5.8.8/Digest…

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

1,進入Anaconda Prompt 2,進行安裝: pip install scikit-image 3,若還是報錯,嘗試進行更新一下 pip install scikit-image --upgrade

array_push_PHP array_push()函數與示例

array_pushPHP array_push()函數 (PHP array_push() function) array_push() function is used to insert/push one or more than one element to the array. array_push()函數用于將一個或多個元素插入/推入數組。 Syntax: 句法: array_push(array, elemement1, …

html5的canvas元素使用,HTML5canvas元素概念及使用方法介紹

一. canvas簡介??canvas是html5新增的元素,主要用于圖形的繪制。canvas本身沒有繪圖能力,一切都是通過javascript來完成的。二. canvas使用在html中添加canvas元素,定義canvas元素的高寬在javascript代碼中獲取canvas元素對象var canvas d…

Delphi XE2 之 FireMonkey 入門(10) - 常用結構 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相關方法...

它們都是結構, TPointF、TRectF 屬新增, 其它也都有升級; 現在都擁有豐富的方法和方便的運算符重載; 且有一組相關的公共函數.這組內容重要的是它們都來自 System.Types 單元, 也就是不僅僅在 FM 中可用. TPoint: Create(); // {運算符重載} Equal; // NotEqual;…

【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) 很顯然是函數為二次函…

選哪個云計算平臺部署自己的網站?

技術發展讓我們可以擁有免費的空間啦! 現在的云計算平臺很多,各大公司都在做這個。 我最近用了國內訪問比較順暢的,新浪SAE,cloudfoundry,openshift。 開始用新浪SAE,因為豆子花光了,就轉到clou…

array_fill_PHP array_fill()函數與示例

array_fillPHP array_fill()函數 (PHP array_fill() Function) array_fill() function is used to fill the n elements in an array from given index with the specific value. array_fill()函數用于使用給定索引從給定索引中填充數組中的n個元素。 Syntax: 句法&#xff1a…

阜陽市計算機學校助學金申請書,計算機系貧困生助學金申請書

尊敬的學校領導:您好!我叫____來自計算機系____級____專業____班,我是一名喜愛讀書、熱愛集體并且性格溫和的男孩。我出生在一個貧窮而又落后的小村。家中有五口人,父母文化淺薄,在家務農,由于多年的勞累,父母兩人身體狀況較差,農業收入低微,…

【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…

一些常用的工具

可查看網站服務器使用的架構 http://toolbar.netcraft.com/site_report?urlwww.163.com 可在線制作 icon 圖標 http://www.damotou.com/index.php 好的UI設計 http://www.uiimg.com/ 轉載于:https://www.cnblogs.com/ouuy/p/3183613.html

Silverlight4.0教程之使用CompositeTransform復合變形特效實現倒影

微軟于PDC2009上發布Silverlight 4 Beta版,微軟在Silverlight 4版本中處理了約8000個的Silverlight終端用戶的請求,加入了一系列另開發人員興奮的新特性,最突出的主要體現在幾個方面: 開發工具增強:Visual Studio 2010…

julia矩陣運算_Julia中的復數及其運算

julia矩陣運算Julia| 復數 (Julia | Complex Numbers) The syntax to represent the complex number in Julia is: 在Julia中表示復數的語法為: Syntax: 句法: ABimHere, A and B are the values, and im is the global constant which is bound to th…

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) 類型系統:在編程語言中…