2013-12-22 126 views
0

我目前正在與一個Objective C語言開發移動應用程序中。由於移動設備的性質以及它們的工作原理,所有數據都是通過我創建的API檢索的。安全API,以便使用僅提供移動應用程序

例如,如果用戶試圖找到一些具體的事情做一個頁面上的應用程序(可能是搜索),應用程序將提出一個要求:

http://mydomain.com/api/search?param1=hello&param2=world

如果這些電話是從移動設備通過應用程序創建我知道他們是合法的請求(無論如何我都認爲是合法的)。如果他們從別的地方來,我真的需要阻止它。例如,另一個開發人員可以複製完全相同的應用程序並使用我已經建立了我的服務器上的API,也沒有辦法,我知道的,可以阻止他們這樣做。

有沒有一種方法,我可以保證API一些如何停止從應用程序外部訪問的API?

+0

假設沒有出現任何用戶帳戶進行認證? – Scuzzy

+0

安全令牌? – sskoko

+0

@Scuzzy這是正確的。用戶無需註冊即可使用該應用程序。 – jskidd3

回答

3

假設沒有用戶帳戶進行身份驗證,保護應用程序的唯一方法是在移動應用程序中爲硬編碼安全令牌。即使這樣做,由於逆向工程,它也不會100%安全。

您的API只接收HTTP請求,因此,將合法請求與非合法請求區分開來的唯一方法是發送更多信息,這些信息在您的服務器端會被視爲有效(如OAuth令牌),但是如果有沒有用戶帳戶,您將不得不發送所有應用程序共享的相同令牌(或遵循通用規則)。

我覺得這裏最好的解決方案是硬編碼的安全令牌,它至少會力「黑客」的反向工程的應用,而不僅僅是嗅探網絡。

+0

。非常感謝傑羅姆。 – jskidd3

+0

可我只是問...會是什麼要對這個令牌生成的最佳方式? – Andre

相關問題