繁体   English   中英

更改 Django 的默认通用密码列表

[英]Changing Django's default list of Common Password

我只是尝试使用 Django。 当我尝试使用 createsuperuser 创建超级用户并尝试使用一些常用密码(如 abcd1234(因为不允许使用 abc 或 123))时,它无法接受它,因为显然我的密码太常见了,我知道 createsuperuser 使用某种密码列表以匹配我的和他们的。 我想问是否可以更改密码列表。

我已经尝试打开 manage.py 来查找 createsuperuser 方法,但我没有找到它,因为它只包含 run(sys.argv)

你应该能够。

查找以下路径的文件夹:

\Python3\Lib\site-packages\django\contrib\auth或系统上的等效项。

在其中,您应该会看到一个名为common-passwords.txt.gz的文件。

在其中,会有一个名为common-passwords.new.txt的文件

您应该能够更改列表中的密码。 每行一个密码。 密码应完全小写,因为 Django 会自动将密码转换为小写,以便与常用密码列表进行比较。

相关文档: https://docs.djangoproject.com/en/2.2/topics/auth/passwords/#django.contrib.auth.password_validation.CommonPasswordValidator

欢迎来到 Stackoverflow!

您也可以关注其他答案。 但是,每当您更改virtualenv时,您都必须放置密码文件。 这是将其保留在项目中的方法。

  1. 将您的文件放在manage.py所在的项目文件夹中
  2. 从您的项目文件夹中打开settings.py并添加以下内容

     FILE_NAME = "custom_common_password_list.txt"
  3. 在项目文件夹下创建文件custom_common_password.py

     # projectname/custom_common_password.py import os from django.contrib.auth.password_validation import CommonPasswordValidator from django.conf import settings class CustomCommonPasswordValidator(CommonPasswordValidator): def __init__(self): super().__init__(password_list_path=os.path.join(settings.BASE_DIR, settings.FILE_NAME))

我们基本上是用我们的文件路径调用CommonPasswordValidator

  1. 修改AUTH_PASSWORD_VALIDATORS并添加以下内容:

     AUTH_PASSWORD_VALIDATORS = [ #... { 'NAME': 'projectname.custom_common_password.CustomCommonPasswordValidator', }, #... ]

我们评论现有的CommonPasswordValidator并放置我们的自定义验证器。 确保将projectname替换为您的项目名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM