从 CLI 安全地连接到数据库

Securely connect to a database from a CLI

提问人:8SIXSector 提问时间:9/10/2023 更新时间:9/10/2023 访问量:21

问:

我主要使用这个库在 Kotlin 中编写 CLI:CLIKT 库,我正在使用 Gradle 来管理依赖项

我有一个单独的 Django 网站,我已经部署到 Heroku

这个 Heroku 应用程序有一个附加组件(不确定这是否相关:我尚未配置或填充数据库)heroku-postgresqlpostgresql

我希望CLI安全地连接到数据库并从中读取一些JSON

我的目标是通过 Django 网站分发 CLI(我提到这一点是因为我想让你知道任何人都可以使用 CLI,这就是为什么我需要它来安全地连接到数据库)

PostgreSQL kotlin heroku-postgres

评论

1赞 Bergi 9/10/2023
"我希望任何人都可以使用 CLI“——那么你想保护你的数据库免受谁的攻击呢?听起来你希望每个人都能够连接和使用你的数据库,在这种情况下,就不需要保护它。
0赞 8SIXSector 9/10/2023
我不确定最好的表达方式。我希望任何人都能够连接和访问数据,但不能修改。当我说“安全”时,我的意思是我不确定存储凭据的最佳方式。例如,当我部署我的 Heroku 应用程序时,我能够将我的SECRET_KEY设置为环境变量。我不知道使用我的数据库 URL 之类的东西来做到这一点的最佳方法
0赞 Bergi 9/10/2023
那么,你没有。将凭据放入您分发的 cli 应用程序中的数据库,即可为每个人提供这些凭据。您可以创建一个仅对相关表/列具有权限的受限数据库用户,并将该数据库的凭据公开,但它仍然允许人们攻击您的数据库。既定的方法是在 Web 应用程序中构建 HTTP API,然后从 cli 应用程序联系该 API。它可能是完全开放的或使用 http 身份验证进行保护的,但您至少可以控制 SQL。SELECT
0赞 8SIXSector 9/10/2023
好吧,我明白了。谢谢你的帮助。

答: 暂无答案