当我创建Django超级用户时,如果我尝试添加弱密码,Django不允许我这样做,但对于普通用户,管理员或使用注册表单,我可以添加非常简单的密码。
答案 0 :(得分:2)
当创建用户或超级用户时,两者都使用相同的Django配置设置AUTH_PASSWORD_VALIDATORS
,如果保持不变,它将包含一个验证器列表,所有密码将在通过Django admin创建用户时验证。
如果您想要更难,也可以通过添加更多验证器来加强验证器,或者如果您想要更加宽松,可以添加更多验证器。
但是,如果您通过管理命令create_user
和create_superuser
创建用户,则此验证程序列表将不适用。这是因为Django假设只有开发人员在这个级别与Django进行交互。
对于你的第二个问题,Django没有内置支持登录尝试和阻止进一步登录的内容。这可能来自第三方应用程序,例如django-defender或来自自己的实现。
该实施的主要内容是
添加一个存储尝试次数的新表机制
在settings.py LOGIN_ATTEMPTS = 3
is_active
设置为False
,并始终从False
覆盖中返回login
。