休息与HTTP头令牌认证(Rest token authentication with HTTP h

2019-07-17 14:03发布

这是一个登录屏幕现有的系统,现在我揭露一些服务REST服务。 我建立这个休息(球衣)服务的身份验证令牌登录系统。 用户发送用户名 - 密码然后服务器返回如计算出的令牌;

sha1(username+password+currenttime(or any random number))

用户将使用此令牌登录应用程序的进一步要求。 和服务器保留在数据库带有时间戳和用户ID和登录用户如果时间戳是有效令牌的副本。

考虑到HTTPS将被使用,几个问题;

是否一切正常在我的设计? (代哈希和我保存DB的方式),在我看来最薄弱的一点是,我需要在POST请求发送纯用户名和密码,但因为它是HTTPS我想这不会是一个问题。

另一件事,第一个请求,因为它是现有的系统我没有在我的数据库的用户密码,但让他们的腌凑版本。 我的猜测并不安全让所有的客户这个腌算法,所以我比较hashs但没有密码,寄给我他们的密码的哈希值。 这是否有道理=

Answer 1:

1/2 - 我建议张贴的用户名/密码到服务器,然后可以在体内返回令牌。 最有意义对我说:你不实际存储在多台服务器上,这样就把将是错误的,并查询参数没有任何意义可言。 头应该是跨请求有点相符,于是他们不作任何意义。 当使用令牌实际沟通,随意使用的查询参数或头。 其实并不重要。

3-我会选择一个稍微长哈希算法(SHA256?)



Answer 2:

  1. 我将典型地通过所述令牌中的HTTP标头。

  2. 无论您使用POST或PUT不应该的问题。

  3. 别的东西,我会建议,以帮助防止重放攻击类型将包括与每个POST请求一个随机数(不断增加的价值)。 然后,服务器将跟踪最近使用的随机数和防止使用先前使用的随机数从执行的任何请求。



文章来源: Rest token authentication with HTTP header