我刚刚阅读了 this 文章,我几乎得到了它,尽管在Solution
部分还有一些我不太确定...作者谈到series of tokens
他的意思是用户名永远不会改变的唯一ID吗?存储在数据库中的普通用户ID是否可以用于此用途?那个“正常”的用户ID很可能是用户已知的,所以我不确定这是否应该保持安全......
而且,根据文章中的建议,从大空间生成令牌的好方法是什么?
答案 0 :(得分:2)
阅读文章:
登录cookie包含用户的用户名和随机数(此处的“令牌”)
所以“一系列令牌”是“一系列随机生成的数字。”
答案 1 :(得分:2)
令牌是包含随机字符和/或数字的字符串。 a series of tokens
是随机字符/数字的集合
更新: 要在您的网站上建立安全的记住我功能,最好的方法是:
答案 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服务,即。