如何在使用源代码pipe理时隐藏连接string,用户名,密码?
我正在做一个小型的项目,我正在使用连接string,也不应该被其他人看到或使用的API键和值。 我使用公共GitHub帐户进行源代码pipe理。 在web.config中使用纯文本时,使用源代码pipe理的常用方法是什么?
在签入代码之前是否需要手动删除值?
我发现的作品是用空白或虚拟值检入文件的版本,然后运行:
git update-index --assume-unchanged [fileName]
然后,Git将停止监视对该文件的更改,使您可以将真实的configuration信息放入该文件中,而不用担心检查它。
如果您稍后进行要签入的更改,则可以运行:
git update-index --no-assume-unchanged [fileName]
我们保持敏感和/或机器特定的configuration在单独的configuration文件中,然后使用configSource来包含它们,就像这样…
<connectionStrings configSource="cstrings.config"/>
这样你就可以检查Web.config和一个cstrings.config文件,该文件具有可以在开发机器上使用的通用值。 (例如,(本地),… MyAppNameDb …)
对于生产环境,请将cstrings.config文件标记为只读,并设置您的部署脚本,以便不要试图覆盖它。 您的生产连接string受到该框上的任何安全保护。 这使您的敏感string不受版本控制。
cstrings.config :
<?xml version="1.0" encoding="utf-8" ?> <connectionStrings> <add name="Default" connectionString="Server=localhost"/> </connectionStrings>
您可以检查包含虚拟值的文件,如config.sample。 然后,每个开发人员将复制该文件,以自己的值进行configuration和编辑。 然后你会把这个本地文件放在.gitignore中。