我有一个用C#和F#组合编写的web角色,我想把它作为一个开源项目在GitHub上公开。
这是我的ServiceConfiguration.Cloud.cscfg文件:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="My.Cloud.Service" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
<Role name="My.Web.Role">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=<<myaccountkey>>" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="roblyndon" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="<<my encrypted password>>" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2017-05-17T23:59:59.0000000+01:00" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
<Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="205ceb49-275d-4c1c-a42c-fd7e55be0229" />
</ConfigurationSettings>
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="35DE0821166BCB100B2BA7FF339436DA0CBC089F" thumbprintAlgorithm="sha1" />
</Certificates>
</Role>
</ServiceConfiguration>我不想隐藏<<my encrypted password>> --毕竟,它是加密的,尽管是用SHA-1加密的。
这样做的疯狂之处在于,虽然我的远程访问密码是加密的,但指向我的存储帐户的诊断连接字符串是直接公开的。实际上,它包含对我的存储帐户的主访问密钥的未加密版本。
如果我把它放到一个开源项目中,我想要包含我的cscfg文件,但是显然我不能这样做,因为它公开了我的私有数据。和我现在一样,把它们放到.gitignore中会给任何试图克隆存储库的人带来编译难题。
有什么办法使我的cscfg文件安全吗?
编辑:请注意,这不是一个关于在开源项目中隐藏敏感数据的一般性问题。根据您正在处理的项目类型,有几种策略可用于此操作。对于web角色来说,很难实现这些标准解决方案中的任何一个,尝试这样做可能会破坏构建。显而易见的答案是.gitignore整个ccproj云服务项目,并且只允许协作者访问相关的web项目。
发布于 2016-06-03 19:49:44
答案并不像听上去那么可笑:不要使用云服务。
对于web项目,可以在.gitignore文件中使用显式忽略的配置转换。Web角色没有这样清晰的分离。
真正的线索是,在Azure Portal中,Cloud现在附加了一份该死的起诉书“(经典版)”,这几乎是微软产品团队所能做到的。现在大力鼓励开发人员构建应用程序服务,这些工具提供了一套更加丰富的工具,可以在隐藏敏感数据的同时保持源代码的公开性。我现在正在升级,我怀疑从长远来看,它会给我省下很多麻烦。
https://stackoverflow.com/questions/37513643
复制相似问题