【发布时间】:2019-07-28 19:26:58
【问题描述】:
在我想在 GitHub 上发布的开源程序中使用数据库的最佳方式是什么? 我在 GitHub 上发布我的程序时遇到了问题,因为您可以看到连接字符串。这使您可以根据需要编辑数据库。有没有办法在我将 ConnectionString 上传到 GitHub 时对其进行加密?有没有其他方法可以解决这个问题?
【问题讨论】:
-
你想写一个开源程序但是你想隐藏connectionstring?
在我想在 GitHub 上发布的开源程序中使用数据库的最佳方式是什么? 我在 GitHub 上发布我的程序时遇到了问题,因为您可以看到连接字符串。这使您可以根据需要编辑数据库。有没有办法在我将 ConnectionString 上传到 GitHub 时对其进行加密?有没有其他方法可以解决这个问题?
【问题讨论】:
加密仅与您存储密钥的方式一样可靠,它必须与代码中使用的任何其他内容一样公开。保密和在 GitHub 上发布的要求本质上是不一致的。
一种方法是将连接字符串等内容存储在您未在 github 上共享的配置文件中。或者使用具有默认用户值的本地网络数据库,这对您的生产系统上的任何攻击者没有帮助。
如果出于某种奇怪的原因需要在所有编译/安装中访问相同的共享数据源,您可以将数据库隐藏在您不共享其代码的 WebService 后面。由于程序只需要担心访问 WebService,因此您不需要任何 DB 值。甚至在后端使用了哪个数据库。
【讨论】: