新聞中心
本文和大家重點(diǎn)討論一下Flex安全沙箱問(wèn)題的解決,主要介紹一下跨域文件讀取和Scoket沙箱兩部分內(nèi)容,希望本文的介紹對(duì)你的學(xué)習(xí)有所幫助。

關(guān)于Flex安全沙箱問(wèn)題的解決
最近遇到了Flex安全沙箱問(wèn)題,找了很多資料發(fā)現(xiàn)不是都是和我,我的程序需要socket連接,而大多數(shù)講的都是跨域文件讀取的。我先把兩種方法都總結(jié)出來(lái):
跨域文件讀取
方法一:在目標(biāo)服務(wù)器上布署crossdomain.xml文件(我用的此方法很管用,放上就沒問(wèn)題了)需要遠(yuǎn)程服務(wù)根目錄定義有crossdomain.xml文件,如下:
方法二:使用代理,把Flex要訪問(wèn)的遠(yuǎn)程文件通過(guò)asp,php,jsp等腳本讀取到本地,然后再由Flex去訪問(wèn);
方法三:使用Adobeflashplayer9打開程序后,點(diǎn)擊菜單欄中文件->創(chuàng)建播放器...即生成exe文件,運(yùn)行exe文件即可突破安全限制;
方法四:
1、找到這個(gè)文件夾:c:\DocumentsandSettings\
2、在其下建立一個(gè)名為"FlashPlayerTrust"的文件夾
3、在"FlashPlayerTrust"文件夾下新建一TXT文件,內(nèi)容如下:c:\d:\e:\f:\
4、將該txt文件命名為:"myTrustFiles.cfg"再打開你硬盤里的SWF文件,就不會(huì)出現(xiàn)那個(gè)煩人的安全設(shè)置提示窗口了!
方法五:用HttpService它默認(rèn)是有Proxy的,需要配置Flex-config.xml,里面有一段:
………………
這個(gè)是白名單,一般情況下是注釋掉的,也就是默認(rèn)只有本地的http://{localserver}/*和https://{localserver}/*可以訪問(wèn)。其他的需要在Flex-config.xml里的自行修改成需要的就可以了。
訪問(wèn)本地自然不會(huì)跨域,不過(guò)你肯定訪問(wèn)局域網(wǎng)其他機(jī)器了,所以是依照白名單規(guī)則,屬于跨域
Socket沙箱問(wèn)題
再來(lái)看一下Flex安全沙箱中Socket沙箱問(wèn)題,在Flex中使用Socket進(jìn)行通信時(shí),也會(huì)受到Flash9的新安全策略的困擾.解決方法不能像在Web服務(wù)器中布置一個(gè)crossdomain.xml來(lái)解決,或是在服務(wù)器上專門開啟843端口來(lái)提供安全策略.有一種方法就是在接收到客戶端的連接后,向其發(fā)送安全策略。
比如我是用JAVA來(lái)開發(fā),客戶端的Flex會(huì)先搜索同域,及服務(wù)器的843口,看是否能得到安全策略,這時(shí)候Socket是先建立好的,可以在接收到Socket,即Accept事件發(fā)生是,馬上向其發(fā)送策略串,否則客戶端就會(huì)因?yàn)榘踩呗圆贿^(guò)關(guān),于斷開,如果成功獲取策略,則客戶端將斷掉先前的那次Socket,再真正進(jìn)行程序中你要求的Socket連接請(qǐng)求.
網(wǎng)站名稱:Flex安全沙箱問(wèn)題解決方法詳解
鏈接URL:http://www.fisionsoft.com.cn/article/dpjeepg.html


咨詢
建站咨詢
