我不确定为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,但是我只是想知道即使连接是本地的,我是否也必须保护它。
不,在源代码中将密码保留为纯文本并不安全。您可以将项目设为开放源代码,并且忘记从存储库中删除密码,也可以将代码复制到SO问题:)而不删除密码。因此,最好将密码和其他机密(例如SECRET_KEY
)保留为环境变量。在开发过程中,您可以使用python-dotenv
库。因此,您的settings.py文件将如下所示:
python-dotenv
您可以使用环境变量:
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"