编辑
2024-11-27
👨‍🎓 无限进步
00
请注意,本文编写于 204 天前,最后修改于 204 天前,其中某些信息可能已经过时。

目录

概述
生成令牌
存储令牌

《哥本哈根手册》提供了在 Web 应用程序中实施身份验证的一般准则。它是免费、开源和社区维护的。它有时可能是固执己见或不完整的,但我们希望这填补了在线资源中的某个空白。我们建议将其与 OWASP 作弊表系列一起使用。

概述

“服务端令牌”是存储在服务器上的任何长的随机字符串。它可以保存在数据库或内存中数据存储(例如 Redis)中,并用于身份验证和验证。可以通过检查令牌是否存在于存储中来验证令牌。示例包括会话 ID、电子邮件验证令牌和访问令牌。

python
CREATE TABLE token ( token STRING NOT NULL UNIQUE, expires_at INTEGER NOT NULL, user_id INTEGER NOT NULL, FOREIGN KEY (user_id) REFERENCES user(id) )

对于一次性令牌,任何检索也应保证删除。例如,在 SQL 中,在获取令牌时应使用原子操作(如事务)。

生成令牌

令牌应至少有 112 位熵(120-256 是一个很好的范围)。例如,您可以生成 15 个随机字节并使用 base32 对其进行编码,以获得 24 个字符的令牌。如果您通过逐个选择随机字符来生成标记,则应确保相似的熵级别。有关更多信息,请参阅 生成随机值 页面。

存储令牌

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!