问题描述
我是烧瓶安全的新手。我已经设置了then
。每次我创建用户时
app.config["Security_PASSWORD_SALT"] = "something"
创建很好,但是该新用户在数据库中的密码未哈希。但是,当我通过 user_datastore.create_user(
email=username,password=password,roles=["level 1"])
db_session.commit()
登录时,数据库中的密码将更新哈希值。
- 为什么登录过程会更新密码?
- 我是否缺少一些用于使密码在第一时间被散列的设置?
解决方法
如文档所述(在3.4.x中)-使用create_user时,它将存储您通过的所有内容!这被认为是非常糟糕的事情-您必须对它进行哈希处理(API文档中为create_user提供的示例)。
默认情况下-配置变量:SECURITY_DEPRECATED_PASSWORD_SCHEMES定义的视图为“不好”的方案-如果遇到,将在登录时自动重新哈希。当认为较旧的加密货币不足时,这允许用户数据库缓慢更新。