【问题标题】:Custom RESTful API Authentication自定义 RESTful API 身份验证
【发布时间】: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


    【解决方案1】:

    你必须知道没有什么是 100% 安全的,

    您可以存储最近登录的用户的 ip,如果您从不同的 ip 收到来自同一用户的另一个登录,您可以发回一个响应,表明该用户已经连接

    【讨论】:

      猜你喜欢
      • 2011-11-28
      • 2013-08-21
      • 2020-04-01
      • 2022-12-10
      • 2011-08-26
      • 2017-01-13
      • 2019-03-23
      • 2016-05-06
      • 2016-04-05
      相关资源
      最近更新 更多