在 Django 中为我的 PostgreSQL 连接设置纯文本密码是否安全?
it is secure to have a plain text password for my PostgreSQL connection in Django?
我不确定为我的 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 文件将如下所示:
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': '',
}
}
我不确定为我的 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 文件将如下所示:
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': '',
}
}