2016-05-14 29 views
0

因此,我正在嘗試開發一個應用程序,其中整個後端基於一個允許跨平臺更靈活的API。以API爲中心的應用程序

我遇到的一個小問題是,我希望每個任務都通過API來執行,這意味着每個任務都是以用戶身份執行的,而不是應用程序本身,從而允許用戶能夠製作相同的API來自應用程序外部的呼叫也是如此。

我使用強制HTTPS作爲標準,據我所知在這一點上沒有理由再次加密數據。但我的兩個主要問題是:

  1. 什麼是實現API安全的最有效和最有效的方法?

  2. 如何最好地實現應用程序內的每個用戶API請求?

如有需要,請發表評論以作任何澄清。

回答

0

使用HTTPS,您不需要重新加密,但前提是您也可以防止中間人攻擊。您可以通過證書固定來實現這一點,這意味着應用程序會驗證服務器證書的真實性,以檢查服務器是否是它所說的服務器,並且它也是應用程序所期望的服務器。你可以走得更遠,也可以讓服務器檢查應用程序的身份,雖然你已經說過用戶可以在應用程序之外訪問,所以應用這些檢查可能在技術上具有挑戰性。

大多數人使用API​​密鑰添加的安全級別,但它是不完全安全,它依賴於用戶和應用程序代碼不公開提供這些密鑰。

這延伸到用戶令牌是短暫的,需要定期重新創建(或明確地按需)。因此,用戶登錄後會有一個臨時令牌,用於驗證他們在短時間內發出的每個請求(並且可能僅限於該設備)。

理想情況下,所關心的數據將使用僅由用戶知道而不存儲在任何設備或服務器上的密碼進行保護。因此,在識別和用戶會話驗證之上,數據不會以未加密的形式離開設備。

究竟是什麼,你可以實現取決於上下文。如果服務器正在處理數據而不僅僅是保存和返回/轉發數據,那麼存在明顯的侷限性,並且您的安全性更成爲傳輸安全性和密碼/密鑰存儲的問題。

相關問題