2010-04-27 75 views
0

我正在創建一個Flash應用程序,將圖像發佈到一個URL以便稍後保存到磁盤/顯示器。我想知道什麼是一些建議的策略,以確保足夠安全,以便驗證上傳來自應用程序,而不僅僅是一些隨機表單文章。從flash客戶端上傳安全圖片的有效策略是什麼?

是否足夠可靠的檢查參考目的地意識到,我並不需要堅固的安全性,或者設置認證頭,是即使它似乎從我讀不可靠的更好的策略。

的應用程序和服務器腳本將位於同一個域,是在java中 - 有沒有辦法來檢查「會話」或類似的東西?

我的另一個想法是某種簡單的哈希密鑰類型系統,我可以將密鑰硬編碼到閃存應用程序中,並將其傳遞給服務器 - 服務器也會知道該密鑰,並能夠驗證傳遞的值是否基於該值?

感謝您的任何意見,特別是任何例子 - 我是天真的在這方面的-b

的應用程序是一個公共的應用程序,所以驗證用戶是不是一種選擇。經過更多研究,我正考慮在兩端使用硬編碼的salt密鑰,然後發送base64編碼圖像bytearray + salt的MD5哈希以在服務器端進行匹配。對此策略有何想法?

回答

0

你的問題可以概括爲「我怎樣才能確保圖像是通過我的(閃存)應用程序上傳?」。答案是,它不能。無論你做什麼,確定的人都可以對你的應用程序進行逆向工程,或者觀看http流量,然後使用這些信息來創建另一個客戶端(applet/silverlight/html表單/獨立程序)以將文件上傳到服務器。充其量,你可以模糊不清。但這不是安全。

相反,你應該問:「我怎樣才能確保圖像已被授權人上傳?」。這一個是可能的。用戶必須通過https進行身份驗證,然後上載文件。有關如何解決此問題的更多信息,請閱讀OWASPs guide to session management

+0

嗨,謝謝你的回覆。我意識到,我永遠無法真正確保應用程序的安全,並且這不是必要的 - 我試圖通過麻煩實現一個小的安全級別,以便服務器端不會保存它提供的任何映像。 該應用程序是一個公共應用程序,所以驗證用戶不是一種選擇。 更多的研究,我想使用在兩端硬編碼鹽鍵,然後發送編碼圖像的ByteArray +鹽在服務器端進行匹配以base64的MD5哈希後。 對此策略有何看法? – WillyCornbread 2010-04-27 12:45:45

+1

根據您的要求,對圖像數據和鹽值進行編碼並將其作爲「挑戰」發送聽起來像是一個不錯的選擇,對於客戶端和服務器而言,它足夠簡單。有關AS側的MD5,您可以使用這些庫(有相信其他人,但這些都是一種標準):http://code.google.com/p/as3corelib/ 或http://代碼.google.com/p/as3crypto /。 – 2010-04-28 18:29:26