《哥本哈根手册》提供了在 Web 应用程序中实施身份验证的一般准则。它是免费、开源和社区维护的。它有时可能是固执己见或不完整的,但我们希望这填补了在线资源中的某个空白。我们建议将其与 OWASP 作弊表系列一起使用。
“服务端令牌”是存储在服务器上的任何长的随机字符串。它可以保存在数据库或内存中数据存储(例如 Redis)中,并用于身份验证和验证。可以通过检查令牌是否存在于存储中来验证令牌。示例包括会话 ID、电子邮件验证令牌和访问令牌。
pythonCREATE 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 许可协议。转载请注明出处!