为Django中的PostgreSQL连接提供纯文本密码是安全的吗?

问题描述 投票:1回答:2

我不确定为PostgreSQL数据库连接使用纯文本密码是否不安全。

在我的“ settings.py”文件中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'my_database', # database name
        'USER': 'username',    # P.user
        'PASSWORD': 'plaintext password goes here',
        'HOST': 'localhost',  # where is locate our database?
        'PORT': '',
    }
}

如果不安全,请提供有关如何处理这种情况的更多信息。

注意:我在网页上使用https,但是我只是想知道即使连接是本地的,我是否也必须保护它。

python django django-settings
2个回答
0
投票

不,在源代码中将密码保留为纯文本并不安全。您可以将项目设为开放源代码,并且忘记从存储库中删除密码,也可以将代码复制到SO问题:)而不删除密码。因此,最好将密码和其他机密(例如SECRET_KEY)保留为环境变量。在开发过程中,您可以使用python-dotenv库。因此,您的settings.py文件将如下所示:

python-dotenv

0
投票

您可以使用环境变量:

设置

from dotenv import load_dotenv
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'my_database', # database name
        'USER': 'username',    # P.user
        'PASSWORD': os.environ.get('PASSWORD'),
        'HOST': 'localhost',  # where is locate our database?
        'PORT': '',
    }
}

获取

os.environ["password"] = "your_password"
© www.soinside.com 2019 - 2024. All rights reserved.