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



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

我已经尝试打开 manage.py 来查找创建超级用户方法,但我没有找到它,因为它只包含 run(sys.argv(

你应该可以。

查找遵循以下路径的文件夹:

系统上的Python3Libsite-packagesdjangocontribauth或等效项。

在其中,您应该看到一个名为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替换为项目名称。

我绝对建议使用更安全的密码。

为什么?您不希望黑客猜测您的密码并劫持您的网站。即使是小型网站也是大型捕鱼尝试的目标,可用于传播恶意软件和做坏事。

黑客用来进入系统的一种方法是使用常见的密码列表。因此,请确保选择的密码不在此类列表中。

一个仍然安全的易于记忆的密码可能包含几个单词。作为替代方案,您可以使用密码管理器为您记住随机字符串。

您可以在此处找到有关如何创建安全密码的更多建议:https://www.bu.edu/tech/support/information-security/security-for-everyone/how-to-choose-a-strong-password/

最新更新