Flash player 10(FLEX 4)的安全沙箱机制
生活随笔
收集整理的這篇文章主要介紹了
Flash player 10(FLEX 4)的安全沙箱机制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
注意,是Flash Player 10的安全沙箱,也就是說不僅僅是Flex編譯出來的那個(gè)swf,所有的swf都遵循Adobe的白皮書。
Flash player 安全模型阻止以下三類違規(guī)行為:? 未授權(quán)的情況下,訪問數(shù)據(jù):
本地磁盤,聯(lián)機(jī)的磁盤,web服務(wù)器,內(nèi)存中的數(shù)據(jù)。
? 未授權(quán)的情況下,訪問終端用戶信息:
可能包括個(gè)人信息和金融類數(shù)據(jù),也包括終端用戶對flash player的安全設(shè)置信息。
? 未授權(quán)的情況下,訪問宿主機(jī)器的資源:
控制應(yīng)用程序,設(shè)備,系統(tǒng)資源。
在 計(jì)算機(jī)系統(tǒng)中,正確操作、保護(hù)資源可以保證很多類型用戶的利益。這在flash的安全模型中尤為重要,有的環(huán)境會從多種途徑獲得執(zhí)行代碼,比如說 flash player是adobe制作的,運(yùn)行在其中的swf又是另外一個(gè)來源。而且這些環(huán)境也會從其他網(wǎng)站讀取數(shù)據(jù),在本機(jī)上運(yùn)行程序。
在flash的運(yùn)行環(huán)境中,adobe假設(shè)安全隱私和以下角色相關(guān):
管理員:
管理員設(shè)置的flashplayer安全信息保存在mms.cfg 中。例如,訪問計(jì)算機(jī)的攝像頭或者音頻輸入設(shè)備。訪問本地文件,文件上傳,下載的權(quán)限。
Global Trust files當(dāng)安裝flash應(yīng)用程序時(shí),安裝程序(以管理員角色運(yùn)行)可以指定本地文件或者路徑為可信的。
用戶:
設(shè)置管理器,設(shè)置UI對話框。攝像頭和音頻設(shè)備的訪問。當(dāng)遺留flash應(yīng)用程序試圖在新的flash player中訪問受保護(hù)的資源時(shí),flash player會給用戶發(fā)出警告。
User Trust files 當(dāng)安裝flash應(yīng)用程序時(shí),安裝程序可以指定本地文件或者路徑為可信的。
網(wǎng)站管理員:
URL策略文件,決定了flash應(yīng)用程序是否可以訪問domain上的資源。
Socket策略文件,授權(quán)給ActionScript socket層的鏈接。
URL元策略和socket元策略,元策略是一個(gè)“策略上的策略”,由管理員設(shè)置,它決定了什么策略文件是允許在server上存在的。
作者:
跨腳本API和跨domain數(shù)據(jù)訪問,flash player提供安全訪問的API 。
Flash Player 安全體系架構(gòu)
基本的sandbox安全模型
沙箱是flash player用來容納程序資源的邏輯安全組。沙箱中的資源都由沙箱的所有者控制的。沙箱是獨(dú)立于操作系統(tǒng)、文件系統(tǒng)、網(wǎng)絡(luò)和其他應(yīng)用程序的。
當(dāng)flash player載入swf文件時(shí),程序被自動分配到特定的沙箱之中。在同一沙箱中運(yùn)行的程序可以自由的交互。如果對安全規(guī)則進(jìn)行了相應(yīng)的設(shè)置,不同砂箱中的程序也可以交互。
swf文件的作者可以使用只讀的靜態(tài)Security.sandboxType屬性來確定 Flash Player 向其分配該swf文件的沙箱類型。Security 類包括表示Security.sandboxType屬性可能值的常量:
Security.REMOTE:swf文件來自 Internet URL,并遵守沙箱規(guī)則。
Security.LOCAL_WITH_FILE:swf文件是本地文件,但尚未受到用戶信任,且沒有使用網(wǎng)絡(luò)名稱進(jìn)行發(fā)布。此swf文件可以從本地?cái)?shù)據(jù)源讀取數(shù)據(jù),但無法與 Internet 進(jìn)行通信。
Security.LOCAL_WITH_NETWORK:swf文件是本地文件,且尚未受到用戶信任,但已使用網(wǎng)絡(luò)名稱進(jìn)行發(fā)布。此swf文件可與internet通信,但不能從本地?cái)?shù)據(jù)源讀取數(shù)據(jù)。
Security.LOCAL_TRUSTED:swf文件是本地文件,且已使用“設(shè)置管理器”或flash player信任配置文件受到用戶信任。此swf文件既可以從本地?cái)?shù)據(jù)源讀取數(shù)據(jù),也可以與internet進(jìn)行通信。
在默認(rèn)的安全沙箱中,a.com中的swf可以訪問同domain下的所有資源,例如a1.swf可以讀取a2.swf,也可以讀取a3、a4文件。
但是不同域下的資源不可以互相訪問,例如a.com上面的swf只可以發(fā)送信息到b.com,但是不能讀取b.com下的任何資源。
只有b.com設(shè)置了策略文件,允許a.com訪問它,才能保證來自a.com的swf文件可以訪問b.com的資源(比如,使用ActionScript URLLoader.load())。
只有b.com的swf使用Security.allowDomain()方法,允許a.com訪問(例如調(diào)用b.com中swf的ActionScript代碼),這樣,來自a.com的swf才可以訪問b.com下的swf。
特定范圍的沙箱機(jī)制
網(wǎng)絡(luò)文件:所有的資源都在網(wǎng)絡(luò)沙箱模型中,該模型符合基本安全沙箱模型。并且每個(gè)domain的資源都會被分配到相應(yīng)的沙箱之中。
本地文件:本地文件沙箱也符合基本安全沙箱模型,但是他們有不同的缺省設(shè)置。文件地址符合“file://”或者UNC路徑(統(tǒng)一命名規(guī)約),并且不包含IP地址或者域名的文件,被認(rèn)為是本地文件。
三種本地文件沙箱模型:
? local-with-filesystem
? local-with-networking
? local-trusted
默認(rèn)情況下,本地的swf都會被放在local-with-filesystem沙箱中運(yùn)行,該沙箱中的程序可以訪問本地資源,但是不能訪問網(wǎng)絡(luò)資源,除非系統(tǒng)認(rèn)為網(wǎng)絡(luò)資源是本地文件。
本 地swf在編譯的時(shí)候,加入編譯參數(shù)use-network=true,運(yùn)行時(shí)該文件就會被放入local-with-networking沙箱。默認(rèn)情 況下,此沙箱中的swf也是不可以訪問其他swf文件的腳本來執(zhí)行的,只有通過Security.allowDomain()才可以訪問在local- with-networking沙箱或者local-trusted沙箱中的swf文件。但是local-with-file-system是不可以的, 這是為了防止本地swf文件和網(wǎng)絡(luò)swf配合盜取本機(jī)數(shù)據(jù)。
轉(zhuǎn)載于:https://www.cnblogs.com/zack/archive/2009/07/13/1522639.html
總結(jié)
以上是生活随笔為你收集整理的Flash player 10(FLEX 4)的安全沙箱机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据工程师面试常见题目汇总
- 下一篇: 证件照尺寸修改、图片背景换色、照片大小压