開發中遇到了安全沙箱的問題,一下有幾種解決方案:
1. system.security.allowdomain("*");
如果要允許多個域,可以用逗號隔開:
system.security.allowdomain("www.windshow.com", "windshow.com", "player.windshow.com");
2.關於flex跨域讀取乙個
比如 假設你的伺服器事 [url= 而你的乙個flex檔案位於 [url= /flex/myfalsh.swf
當乙個客戶來訪問你的這個myfalsh.swf 檔案 而你的這個檔案又要去 [url= 這裡把這個載入到flash中
怎麼辦? 最簡單的方法就是 var l:loader = new loader; l.load(new urlrequest("")); 這個方式如果你的flash是直接放在本地目錄上執行那還可以
放在伺服器上 載入 立馬 報錯 安全沙箱衝突
看了看loader 的 load的方法load(request:[url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/flash/net/urlrequest.html]urlrequest[/url], context:[url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/flash/system/loadercontext.html]loadercontext[/url] = null):[url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/specialtypes.html#void]void[/url]
context:[url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/flash/system/loadercontext.html]loadercontext[/url] 這個幹嗎用的? 再看看幫助 原來是用來設定執行域 和 設定是否載入安全策略檔案的
當然使用方法是 var lc:[url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/flash/system/loadercontext.html]loadercontext[/url] = new [url=http://mce_host/admin/blogs/265174/mk:@msitstorec\documents%20and%20settings\qkaibo.aixia\桌面\adobe_flex_2.0.1_language_reference_[flex2.org].chm::/langref/flash/system/loadercontext.html]loadercontext[/url](true);
var l:loader = new loader; l.load(new urlrequest(""),lc); 這樣行嗎? 一樣不行
還要放乙個 安全策略檔案 放在對方伺服器的根目錄下面 名稱為:[b]crossdomain.xml 最好是這個名字 省得多寫**[/b]
內容為
<?xml version="1.0"?>
<?xml version="1.0"?>
所以這種方式有個很大弊病 就是要在對方伺服器上放這麼乙個檔案 , 別人還肯給你放啊 ? 要不就是傻了
3.很自然的就是想到用**方法 就是 用asp,php 等類似的程式去把這種讀回來 然後傳給flex
具體: 放乙個如 getpic.asp 在伺服器上 和myfalsh.swf 同乙個目錄
getpic.asp的**為
myfalsh.swf 種的**這樣寫
private var _loader:loader;
private var _loadurl:string;
public function fileloader(url:string)
//載入
public function load():void
public function get content():displayobject
private function onloadcompleateevent(e:event):void
private function onloadioerrorevent(e:ioerrorevent):void
呼叫方法
fileloader( /flex/myfalsh.swf?url=
4.blaseds時候使用的解決方案
將endpoint中ip位址改為伺服器的ip位址
Flex 安全沙箱
1.網路訪問的swf檔案,security.sandboxtype值為remote,這種情況下通過伺服器上的跨域檔案crossdomain.xml判斷是否能夠跨域訪問。比如http site1 flash1.swf需要訪問http site2上的資源,則需要在site2伺服器上crossdomain...
flex提示安全沙箱
網上的方法很多,我看的不下6中,但是就是不管用,我的情況是,在程式沒發布時,直接執行沒錯誤,但是當發布時,訪問就錯了,提示securityerror error 2048 安全沙箱衝突 http localhost 8086 index.swf 不能從 http www c8d8bc651c4 ar...
安全解決方案
專案收集的思路 乙個是關注網際網路企業 團隊的安全開源專案,經企業內部實踐,這些最佳實踐值得借鑑。另乙個是來自企業安全能力建設的需求,根據需求分類,如waf hids git監控等。這個收集是乙個長期的過程,我在github建立了乙個專案,專門用來收集一些優秀的甲方安全專案。專案內容 根據企業安全能...