去买Bruce Schneier的秘密和谎言以及他的实用密码学.继续订购Ross Anderson的安全工程第二版.当你在它的时候.现在,阅读秘密和谎言 - 相信我,这是一个有趣的阅读.:)然后阅读Practical Cryptography.此时,在实现需要一定安全性的软件时,您应该更好地了解需要做的事情.继续执行粗略草案实施.既然您的安全工程副本已经到了,请阅读它...虽然那个你可能想要消化得慢一点; 这是一本相当沉重的书.
还有一份关于网络身份验证的白皮书,不值得一读,而且更直接适用于您正在做的事情.我仍然推荐上面的书.
而从另一个LWN.net及时文章列出好一些陷阱,你需要努力避免的.(顺便说一句,LWN.net非常值得订阅,我强烈推荐它.上面的链接允许免费访问该文章,否则非订阅者将无法使用.)
如果 cookie 中的唯一信息是标识符(本质上是标签),那么您要防止的唯一攻击就是攻击者猜测它是什么。因此使用一些随机字节。足够的随机字节使其“无法猜测”。
然后将随机字节压缩成适合您可以在 HTTP cookie 中使用的字符范围的内容。base64 适用于此。这并不是绝对最佳的,因为有超过 64 个 cookie 安全字符,并且它往往会留下尾随==字符,这些字符会向标头添加字节,但不会增加随机性,但这很好。它可以工作,而且 Python 的 Base64 编码速度可能比我们能想到的任何其他编码都要快。
如果您还想在其前面添加用户 ID,这将使跟踪和调试变得更容易,这可能会让您的生活更轻松,所以继续吧。它不会给攻击者带来任何显着的优势。(除非他们设法窃取一个,而无法以其他方式确定他们从哪个用户那里窃取,这似乎不太可能。)