有没有理由不生成随机身份验证令牌?

时间:2014-07-07 16:41:27

标签: php authentication hmac

我正在开发一个Web应用程序,而我正试图绕过要使用的最佳身份验证系统。基本上,我希望客户端向我的服务器发送用户名和密码,我希望服务器通过向客户端提供一个令牌来响应,该令牌可用于代替该点的密码。

我已经对此进行了一些调查,我一直看到的建议是使用只有服务器知道的密钥的HMAC。我看到了这种方法的好处,但在我看来,这似乎并不理想,因为据我所知,它不能过期。

我可以通过在用于创建/验证hmac的字符串中添加ip地址来增加额外的安全性,我相信,但我仍然不确定这是否是最佳方式。

有没有理由不让我的身份验证令牌只是用openssl_random_pseudo_bytes()生成并存储在我的数据库中,同时还有一个ip地址和用户名?然后我可以发送用户并根据数据库中的内容进行验证。它还允许我轻松过期或注销用户。

1 个答案:

答案 0 :(得分:0)

如果您只有服务器知道的密钥,它可以随时过期吗?只需更改密钥(保留过期跟踪目的的历史记录),所有旧标记都应失效。

如果这是你的话,我建议为每个用户使用不同的秘密,这允许你随意撤销特定的用户令牌。