2015-12-10 164 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同一用户的另一个登录,您可以发送回一个响应,指示该用户已连接