【发布时间】:2016-03-15 12:32:54
【问题描述】:
我只是想知道这是否是为 RESTful API 编写自定义身份验证方法的合理方式。它似乎比较安全,但也许我在这里错了。
1) 电子邮件和密码通过 HTTPS 发送到我的服务器。
2) 服务器存储电子邮件,并通过带有 256 位随机盐的 SHA512 哈希运行密码。散列和加盐的密码存储在数据库中。
所以现在我们有:
email = email@example.com
password = OHqhuewQclakufEjUbZMbowJKEGcvEBz,51c6a3cb58e10754f76e334de064a9dede7875141e1ce0233e3ff14fd7be98a4d5b8fc1c5ab871cb3b1d6b0c9f8073bc3558308511fc4fd6bd049aed5e58a9a4
3) 生成一个具有生命周期(非常随机且很大)的随机令牌,将其存储在数据库中,然后将该随机令牌链接到该特定经过身份验证的用户。
4) 我通过 HTTPS(Web、Android 或 iOS)将令牌发送回客户端,从而将令牌存储在 cookie 或 SharedPrefs 或您拥有的任何东西中。
5) 现在,客户端随每个请求发送令牌。然后,服务器可以将缓存的令牌值与它每次接收到的令牌值进行检查,以确保服务器始终知道谁在发出请求。
这看起来合理且安全吗?我认为这里出现的问题是令牌数据是否受到损害。有没有办法加强那一部分?
【问题讨论】:
标签: api authentication google-cloud-endpoints