2014-12-04 69 views
2

我想使用Microsoft Azure存儲Android API上傳手機相機拍攝的圖像。 這裏是喜歡它: https://github.com/azure/azure-storage-androidAzure存儲Android API,它安全嗎?

我的問題是:帳戶名和密鑰存儲在裏面的應用程序的字符串,那麼任何人都可以反編譯它,讓這些憑據,然後,例如,上傳大量數據這將花費我錢。

那麼在android應用程序上使用它是否安全? 我的其他選擇是什麼?

回答

6

不應該將密鑰存儲在您的應用程序中。你是對的,有人可以反編譯你的應用程序並獲得鑰匙。此外,如果您因任何原因需要更改帳戶密鑰,則用戶需要再次下載應用程序。

你應該做的是在有人需要上載圖像時使用Shared Access Signature (SAS)。您可以使用Azure移動服務或編寫自己的Web服務以按需獲得SAS(具有寫入權限),並在您的應用程序中使用該服務上傳圖像到您的存儲帳戶。

0

你說得對。如果您要將憑證發送到您的應用中的Azure存儲帳戶,那麼任何人都可以獲得憑據,並且可以對其執行任何操作。

通常,您會創建一個訪問Azure存儲並限制每個用戶可能上載的數據量的中間Web服務(例如託管在Azure網站上)。該應用程序只與您的Web服務通信,因此不需要知道存儲帳戶的憑據。

很明顯,您需要某種內置於您的Web服務中的用戶管理,例如,自定義帳戶,Google登錄(大多數Android用戶將擁有Google帳戶),OpenID,OAuth,...

+0

儘管我同意需要中間Web服務,但我不同意它應該充當移動應用程序和存儲之間的網關。想象一下,大量用戶使用該應用程序上傳圖像的場景。在這種情況下,Web服務將成爲瓶頸。我的建議(如我的答案中所述)將使用此服務(或Azure移動服務)創建共享訪問簽名,並讓應用直接與存儲進行交互。 – 2014-12-04 13:32:09

+0

是的,你說得對,SAS是一個更好的解決方案。我想指出的重要事情是需要某種中間Web服務。 – 2014-12-04 13:56:58