Django,Dash应用程序保存数据库凭据的最安全的地方



我是web开发的新手。我有一个Django项目,它在其中一个页面上加载Dash应用程序。dash应用程序生成一个图表,用户可以从数据库中选择某些数据集。

直接在我的App.py(dash应用程序(中,我放置了sqlalchemy数据库连接变量,其中一个回调用于在请求时获取数据。

sqlEngine = sa.create_engine('mysql+pymysql://host:password@127.0.0.1:3306/db', pool_recycle=3600)
dbConnection = sqlEngine.connect()
conn = pymysql.connect(host='127.0.0.1',user='host',password='password',db='db')
cursor = conn.cursor()
app = DjangoDash(name='app', add_bootstrap_links=True, serve_locally = False)
...
@app.callback(...)
def fetch_data(...):
select = """SELECT * FROM `db`.`table`;"""
df = pd.read_sql(select, dbConnection)

我不确定这在生产环境中是否是一种安全的做法。连接到dash应用程序内部数据库的最佳/最安全方式是什么。

我的Django应用程序也连接到数据库进行迁移。谢谢你的帮助/建议。

在Django文档中,它说你不应该提交你的密钥,所以你可以把它保存在一个单独的文件中,然后从那里读取。在文档中,它再次指出您应该以同样的方式处理数据库凭据。因此,我建议您将它们保存在一个文件中并从中读取,而不是通过导入,而是像在文档中那样使用open,或者将其设置为环境变量。

最新更新