我最近開始玩弄android應用程序,並且我已經到了希望它與Web服務進行通信的地步,我完全理解如何以不安全的方式執行此操作,我在哪裏有點絆倒了安全。Android應用程序持久身份驗證
我希望它能像我的手機上的Facebook應用一樣工作,它始終登錄,永遠不會過期。
我的第一個想法是使用用戶/密碼並將它們本地保存在使用SSL加密的手機上。但是,這可能是一個安全問題,丟失的電話被植根,然後人們可以看到登錄和通過(即使他們是哈希/加密,這似乎是一個問題)
我的另一種選擇是使用Oauth 1a/2但是,如果我沒有弄錯,除了auth令牌外,這似乎也有相同的問題,這意味着除了在api層之外發生同樣的問題。
我也看了一下androids accountManager,但我打算在iOS上做這個,所以我想爲兩者都使用通用的做法。
你們認爲什麼?
一般問題:
令人耳目一新OAuth憑證相同的話說登錄一次,或者是它只是一個新的Oauth權杖?
有沒有辦法從手機中獲得一個唯一的ID來檢測是否正在使用「新手機」?
有誰知道Facebook或谷歌如何處理他們的設備上的身份驗證/授權?他們只是簡單地存儲一個永不過期的驗證令牌,或者只是發佈一個新的驗證令牌?
我猜Android應用程序對我來說似乎很脆弱,如果有人發現利用漏洞獲取身份驗證令牌而無需root訪問權限?立足點,我在想這個錯了嗎?
我是否錯誤地認爲唯一能夠阻止某人通過api訪問我的帳戶的人,如果他們獲得了我的令牌的話,是否我訪問並使用了api,並且將Oauth更新爲新的值以使我的舊的過時? (假設沒有可靠的方法來確定哪個設備是哪個設備)
好吧,所以Oauth的想法並不是說它在漏洞的意義上更安全(因爲用戶/密碼具有相同的問題),但在某種意義上它保護用戶的實際用戶名和密碼,並且如果它被破壞,你只需更新/使令牌無效。 – Krum110487
是的。您不必存儲用戶憑據,每次打開應用程序時都不必通過網絡傳輸它們。 – FMontano
看看[這個答案](http://stackoverflow.com/questions/7561631/oauth-2-0-benefits-and-use-cases-why)。你可能會發現它很有幫助。 – FMontano