我們已經開發了一個帶有REST API和利用它的Android應用程序的服務。我們目前不需要我們的用戶進行身份驗證。如何避免Android中濫用Rest API?
我們想要實現一個簡單的機制來防止隨機的人從應用程序範圍之外調用API,主要是爲了避免濫用會破壞我們計算的數據。
我偶然發現this url,他們建議由有服務器和Android客戶端共享一個祕密,並用它來計算一個HMAC與請求一起通過強制認證。他們聲稱他們在亞馬遜使用這種方法(我還沒有亞馬遜AWS的經驗)。
我正在考慮進行如下操作:
- 店的服務器,並在Android應用一個共同的祕密
- 擁有客戶端和(什麼好主意用於混淆它,除了使用ProGuard?)服務器通過普通HTTP進行通信(我們不需要保密,我們將節省一些CPU),並使用HMAC方法將呼叫認證爲「來自合法Android客戶端」。
- 有時我們可以更新祕密(也許在每個新版本的應用程序)。
- 如果將來我們需要保密,我們將爲相關的REST調用啓用TLS。
您是否認爲該解決方案可行?有人使用這樣的東西嗎?備擇方案?建議?
謝謝。
1.反轉角色對接口條目進行數據檢查。 2.您必須使用完全安全,否則您可能會遺留問題並節省很多。 – mmprog 2014-12-05 17:06:43