2015-12-10 224 views
0

我只是想知道這是否是一種合理的方式來編寫RESTful API的自定義身份驗證方法。這似乎適度安全,但也許我在這裏錯了。自定義RESTful API身份驗證

1)電子郵件和密碼通過HTTPS發送到我的服務器。

2)服務器存儲電子郵件,並通過帶有256位隨機鹽的SHA512散列運行密碼。哈希和鹽漬密碼存儲在數據庫中。

所以現在我們有:

email = [email protected] 

password = OHqhuewQclakufEjUbZMbowJKEGcvEBz,51c6a3cb58e10754f76e334de064a9dede7875141e1ce0233e3ff14fd7be98a4d5b8fc1c5ab871cb3b1d6b0c9f8073bc3558308511fc4fd6bd049aed5e58a9a4 

3)產生與壽命(很隨意的和大)隨機令牌,其存儲的數據庫,然後鏈接隨機令牌特定身份驗證的用戶。

4)我通過HTTPS(web,Android或iOS)將令牌發送回客戶端,從而將令牌存儲在Cookie或SharedPrefs中,或者您擁有。

5)現在,客戶端向每個請求發送令牌。然後,服務器可以檢查緩存的令牌值和它每次接收到的值,以確保服務器始終知道誰在發送請求。

這是否合理安全?我認爲這裏出現的問題是如果令牌數據受到損害。有沒有辦法強化那一部分?

回答

-1

你必須知道,沒有什麼100%的安全,

可以存儲用戶最近記錄的IP地址,如果您收到來自diferent IP同一用戶的另一個登錄,您可以發送回一個響應,指示該用戶已連接