Python 在Django中,为PostgreSQL连接设置纯文本密码是安全的吗?

Python 在Django中,为PostgreSQL连接设置纯文本密码是安全的吗?,python,django,django-settings,Python,Django,Django Settings,我不确定我的PostgreSQL数据库连接使用纯文本密码是否不安全 i、 e 在我的“设置.py”文件中: 如果不安全,请提供有关如何处理这种情况的更多信息 注意:我正在为我的网页使用https,但我只是想知道,即使连接是本地的,我是否也必须保护它。不,在源代码中以纯文本形式保存密码是不安全的。您可能使您的项目开源,但忘记从存储库中删除密码,或者您可以将代码复制到SO问题:)中,而不删除密码。因此,最好将密码和其他机密(例如SECRET\u KEY作为环境变量)保留下来。 在开发过程中,您可以为

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

i、 e

在我的“设置.py”文件中:

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


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

不,在源代码中以纯文本形式保存密码是不安全的。您可能使您的项目开源,但忘记从存储库中删除密码,或者您可以将代码复制到SO问题:)中,而不删除密码。因此,最好将密码和其他机密(例如
SECRET\u KEY
作为环境变量)保留下来。 在开发过程中,您可以为此使用库。因此,您的settings.py文件如下所示:

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': '',
    }
}

您可以使用环境变量:

设置 得到
谢谢你的解释和帮助,我非常感激。
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"
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'my_database', # database name
        'USER': 'username',    # P.user
        'PASSWORD': os.environ["password"],
        'HOST': 'localhost',  # where is locate our database?
        'PORT': '',
    }
}