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