我只是尝试使用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
时,您都必须放置密码文件。这是将其保留在项目中的方法。
- 将文件放在存在
manage.py
的项目文件夹中 -
从项目文件夹中打开
settings.py
并添加以下内容FILE_NAME = "custom_common_password_list.txt"
-
在项目文件夹下创建文件
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。
-
>修改
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/