什么是一系列令牌? (来自一篇文章)

时间:2012-07-03 21:23:40

标签: php cookies

我刚刚阅读了 this 文章,我几乎得到了它,尽管在Solution部分还有一些我不太确定...作者谈到series of tokens 他的意思是用户名永远不会改变的唯一ID吗?存储在数据库中的普通用户ID是否可以用于此用途?那个“正常”的用户ID很可能是用户已知的,所以我不确定这是否应该保持安全...... 而且,根据文章中的建议,从大空间生成令牌的好方法是什么?

3 个答案:

答案 0 :(得分:2)

阅读文章:

  

登录cookie包含用户的用户名和随机数(此处的“令牌”)

所以“一系列令牌”是“一系列随机生成的数字。”

答案 1 :(得分:2)

令牌是包含随机字符和/或数字的字符串。 a series of tokens是随机字符/数字的集合

更新: 要在您的网站上建立安全的记住我功能,最好的方法是:

  • 将网站放在SSL后面,如果它会降低您的性能,只将敏感部分放在SSL后面。
  • 当用户点击“记住我”时,请创建2个COOKIES。 1个常规会话cookie和1个唯一字符串(令牌)
  • 始终验证两个cookie是否都可用,如果会话被劫持,黑客只有会话cookie。

答案 2 :(得分:2)

生成一系列令牌的一种天真的方法是迭代哈希:

T_0:用户名+哈希(用户名)
T_1:用户名+哈希(T_0)
T_2:用户名+哈希(T_1)
...

这种方法的缺点是被盗的cookie会泄露未来的访问权限。生成一系列令牌的更好方法是使用CTR式方法:

R = rand()
T_0:用户名+哈希(R)
T_1:用户名+哈希(R + 1)
T_2:用户名+哈希(R + 2)
...

如果散列足够强大(例如SHA-256),并且确实从足够大的池中随机选择随机(从/dev/urandom读取十几个字节一个简单的来源..)然后,任何一个cookie的知识都无法用于计算未来的cookie - 无需通过Web服务,即。