2009-08-05 21 views

回答

4

在很多情況下,由於與crossdomain.xml關聯的安全模型,這將不起作用。

http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

例如說,我有了一個服務調用一個Flex應用程序,並登錄到我的後端數據庫(也許是PHP和MySQL)。除非我在crossdomain.xml策略文件中明確啓用它,否則應用程序將無法與我的服務器通信,除非swf文件直接從我的域加載。如果應用程序是本地的,它會看起來像我的服務器像localhost試圖通過flex應用程序訪問我的後端。因此,默認情況下,除非在crossdomain.xml中放置了明確的規則以允許從本地主機訪問,否則這將不起作用。同樣,某人不能簡單地將swf放在另一臺服務器上,並嘗試從我的服務器進行訪問,除非將該遠程服務器添加到crossdomain.xml策略中。

所以回到你的問題。顯然,如果您的flex應用程序非常簡單並且不嘗試對服務器進行服務調用,則此crossDomain.xml內容並不適用。例如,如果您有簡單的遊戲,只需在彈性遊戲中加載和播放而無需額外的服務器調用。

如果你想保護你的應用程序,你可以在啓動順序中有一個基本的「電話回家」程序,這個程序會對你的網站進行非常簡單的服務器調用。它不一定非常複雜,在您的應用程序啓動時只需要一個往返服務電話。也許檢查存儲在PHP端的變量中的簡單鍵或字符串,並且除非該鍵有效,否則不要讓flex應用程序運行。你可以在動作中硬編碼預期的鍵。或者可能有一個基本的記錄器來跟蹤應用程序啓動的次數並將計數存儲在數據庫中或其他東西。主要的是不要讓應用程序完全啓動,直到對服務器的這個請求返回了有效的結果。

如果你有這個地方,那麼crossdomain.xml策略將會啓動,如果有人下載你的SWF,它不應該工作,因爲它會嘗試從本地主機到你的服務器進行調用。或者,如果他們竊取您的應用程序並將其託管在他們的網站上,它也不應該起作用。

0

請檢查LiveDocs上的flash.System.Capabilities.playerType。

2

最簡單的辦法或許金正日檢查的

Application.application.loaderInfo.url 

在應用程序啓動(例如在applicationComplete事件)的值,並與您的網站域名相匹配。

相關問題