【问题标题】:Django, Dash App Safest Place to Keep Database CredentialsDjango,Dash App 保存数据库凭证最安全的地方
【发布时间】:2021-06-11 12:51:47
【问题描述】:

我是网络开发的新手。我有一个 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 sqlalchemy plotly-dash pymysql


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2017-07-06
      • 2019-10-12
      • 2023-03-03
      • 2012-06-05
      • 1970-01-01
      • 2012-10-05
      相关资源
      最近更新 更多