2010-01-04 177 views
2

我想和我的網站一起生活。AS3:安全沙箱違規

...但我需要幫助我發生安全違規行爲。 我在這個論壇上看到過有關crossdomain.xml文件的各種線程,包括和鏈接到,但我不明白它......不管我嘗試什麼,我仍然以相同的結果結束。您將在下面注意到,建議使用跨域攻擊的是而不是

FWIW,這只有發生在我導出發佈版本時...我可以加載php數據w/out我的調試/開發階段本地在Flex中的問題。

什麼給?當我做一個基於PHP請求數據,我總是得到這個錯誤彈出:

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://alubow.com/jml_testing/viewable/alubow_project.swf cannot load data from http://www.alubow.com/jml_testing/foldergrab.php?ipath=assets/bitmap/portrait_thumbs/&tpath=assets/bitmap/portrait_imgs/ . at utils.php::DirectoryReader() at alubow_project/newScroller() at alubow_project/mainClickOut()

有代碼,我需要添加到得到這個工作?我需要配置我正在使用的服務器嗎? 我需要儘快與這個網站一起生活,並且我在本地和服務器端(通過瀏覽器)獲得的這些錯誤是不可接受的。

這可能是我用FLASH PLAYER安裝的問題嗎? 我有Flash播放器10.

JML

+1

你真的應該避免,如果在所有可能的跨域策略。如果您只是在開發過程中試圖使其工作,那麼您可以將該位置添加到Flash Player信任文件或執行Chuck下面所述的操作。有關跨域策略爲何很危險的更多詳情,請查看我的博客:http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/ – 2010-01-04 19:46:42

+0

詹姆斯,感謝您的信息。我更新了我的問題。如果任何人有其他意見,將不勝感激。我在本地機器上安裝了調試器版本,以便我可以使用trace()。 – jml 2010-01-04 23:00:47

回答

3

問題出在www前綴。我想你正在嘗試加載一個www子域的頁面,並且你正在尋找的URL確實有這個前綴。

現在,你需要做的是以下之一:

  • 變更請求的URL
  • www.yourdomain.com yourdomain.com添加到跨域.xml
  • 調用網址dymanicaly。這是最好的解決方案,但需要更多的工作。您可以使用ExternalInterface完成並連接到JS here。或者您可以使用BrowserManager

享受!

+1

很酷。我在哪裏放置crossdomain.xml文件?在alubow.com/*的根部還是一級? – jml 2010-01-05 00:04:56

+0

沒關係。我發現它需要進入mydomain.com/*的根目錄。非常感謝您的幫助,yn2。 – jml 2010-01-05 05:21:13

1

我知道這是很奇怪,但對於通過Flash播放器,您可能只需要點擊this page加載本地文件的調試版本。看看右上角的東西,看起來像一個示例圖像。它實際上是一個Flex應用程序。單擊連續的選項卡,直到您閱讀「全局安全設置」面板(當前爲左3,帶有globe和掛鎖的圖像)。選擇「編輯位置」菜單,然後選擇「添加位置」。然後,您可以將您的swf或swf文件夾添加到白名單中,他們將能夠神奇地訪問外部資源。

+0

他們不是本地文件。我加載的所有內容都在服務器上,所以這就是我不明白的地方。我也不知道該頁面正在發生什麼...... ??? – jml 2010-01-04 19:53:35

+0

不,但你正在測試你的swf本地正確嗎?我知道該頁面很混亂,頂部有一個應用程序,您可以將swf添加到白名單中進行網絡連接。不知何故,這會被存儲在您的電腦中,並使問題消失。 – 2010-01-04 21:04:49

+0

我一直在本地進行測試,所有人都在那裏工作。我現在想把網站放在網上,這似乎是問題的根源。我在我的帖子中提到,只有在導出發佈版本時纔會出現問題。此時,編譯的SWF不會在本地或服務器端運行。 – jml 2010-01-04 21:28:02

1

這可能是因爲您的應用程序從www.alubow.com從alubow.com,這將觸發對http://www.alubow.com/crossdomain.xml的請求,不存在託管時要求。您可以將您的應用程序稱爲www.alubow.com/jml_testing/viewable/alubow_project.swf並避免該錯誤。

或者,您可以crossdomain.xml文件添加到www.alubow.com。