如果我将我的源代码存储在一个共享式主机公司的SVN上,是否有可能加密内容,以便即使某个人可以访问仓库,他们也无法以明文形式查看源代码?
是否有相关插件可供使用?否则,我想自己实现这一点肯定会非常麻烦!
如果我将我的源代码存储在一个共享式主机公司的SVN上,是否有可能加密内容,以便即使某个人可以访问仓库,他们也无法以明文形式查看源代码?
是否有相关插件可供使用?否则,我想自己实现这一点肯定会非常麻烦!
正确的答案是:
如果主要关注安全的离线备份,可以自己托管存储库,并使用像rsync.net这样的地方处理备份(他们符合SOX/HIPAA)。每15分钟同步所有内容的cron作业应该足够。cron作业可以在推送之前加密您的备份。只是不要丢失密钥/密码。
这样,Subversion根本不需要知道您的加密方案,您可以放心工作,而无需担心偏执症影响生产力。
补充说明:
由于您正在使用共享主机,而共享主机是毫无价值的:请获取一个专用的源代码控制主机。永远不要在共享主机上使用源代码控制。共享主机以丢失数据和对数据安全性和备份做出虚假声明而臭名昭著。专用源代码控制主机的好例子:CVSDude,Beanstalk,GitHub
虽然这篇文章已经有点老了,但我找到了其他的解决方案,可能会对其他人有所帮助。
现在你可以非常便宜地获得一些虚拟专用服务器(VPS)。(每月$5)
为什么选择VPS呢?因为你可以安装你想要的任何东西!(Bob Aman的答案提到了共享主机的安全问题,这是一个很好的观点)
我使用了这篇文章来进行配置:http://cinserely.blogspot.com.br/2010/10/creating-encrypted-subversion.html
你想要的插件必须在客户端上(如果你不信任人们访问托管存储库)。任何强加密算法都会在输出中产生非常相似的输入的大变化(由于它们的高熵)。
这意味着即使你有一个解决方案:
弱加密(例如混淆字符集,这将使差异再次可用)对源代码来说并不安全,因为花括号和括号以及循环和任何其他字母可以被极快地解码。
我希望这证明了这种方法不会导致任何可能的实际解决方案。也许我漏掉了什么。我期待着阅读有趣的评论! :-)
Mathew的帖子是关于加密文件系统的,这需要托管提供商提供。这可能是唯一简单的方法。