2010-09-19 56 views
1

我已經開始在as3中開發繪圖應用程序。我想我可以集成一個cms並允許swf文件作爲圖形在運行時上傳。關於第三方可能的惡意swf文件的potensial安全問題在這裏是什麼?SWF託管安全

我只是簡單地將swf作爲自定義的sprite類添加到遮罩的容器精靈。 這是否會打開一個洞來運行其他腳本(另一臺服務器上的js?),或者以不安全的方式訪問客戶端的計算機?

我會很感激任何recomendations閱讀和或建議/體驗在這樣的swf託管。我發現現在很多網站都在做這個,比如wonderfl和activeden。

+0

我編輯了我的答案 – 2010-09-21 20:23:42

回答

1

這是與XSS等效的ActionScript。您的域名將不再受Same Origin Policy的保護。攻擊者可以利用此漏洞劫持會話ID(Cookie),破壞您的網站或將漏洞利用代碼提供給訪問您網站的任何瀏覽器。

+0

我必須重新閱讀此文才能理解這個概念。我假設如果用戶在應用程序中將swf作爲圖形上傳,然後將其保存在服務器上。當另一個用戶再次打開加載相同swf的應用程序時,默認情況下將不允許該swf跨域訪問。 – imp 2010-09-21 02:35:11

+0

我猜如果我遵循這條道路,它確實會爲另一個人開啓另一個洞,但並不是這樣就不需要特定的重大努力。我猜這種漏洞是Adobe處理的漏洞。儘管我可能仍然忽略了一些東西。您認爲在另一個用戶將swf圖形加載到其客戶端實例之前,服務器端掃描swf的病毒掃描程序可能是合適的嗎? – imp 2010-09-21 02:38:32

+0

@ user332096跨域訪問不起作用。這裏的問題是您允許上傳SWF文件然後執行。此SWF文件將在您的域的上下文中運行,並可能包含任何內容。病毒掃描程序可以確保該swf文件不會利用flash,但它可能仍然是一個非常簡單的漏洞,它抓取「document.cookie」並將其傳輸到另一個域。只要作者是唯一能夠訪問他上傳的swf文件的人,那麼它就不能用於獲取其他用戶的cookie,並且這會顯着限制影響。 – rook 2010-09-21 03:09:44

0

我認爲,不要在服務器上保存一大堆SWF文件,最好是將您的繪圖數據序列化,並讓您的主SWF根據加載的數據重繪繪圖。您仍然可以使用CMS /數據庫來存儲和管理這些數據。

編輯*

如果您需要加載SWF文件,看看Specifying loading context。也許還可以通讀Loading Content

+0

不需要使用loadBytes來獲取序列化的數據,是不是更不安全? – PatrickS 2010-09-19 04:02:21

+0

啊是的,如果他們只是圖紙,那麼將序列化圖紙會很好。我希望使用swf作爲矢量圖形,用於應用程序畫布中的複雜形狀,有點像貼紙。 – imp 2010-09-21 02:31:59