Kev*_*Kev 3 security mercurial
我刚刚在Centos 5.5 x64服务器上安装了Mercurial 1.9.3.我正在使用hgweb.wsgi
和发布我的存储库mod_wsgi
.
此服务器仅供我们的内部代码库和开发团队使用,因此我还使用.htaccess
基本HTTP身份验证保护我的服务器.这一切都很好,我可以将存储库克隆到本地并将更改推送回中央存储库.
有一件事我不能正确理解是如何控制和管理用户的.
例如,我的中央存储库服务器.htpassword
文件中有两个用户:bob
和kevin
.
在每一个的bob
和kevin
的本地计算机上他们有自己的Mercurial .hgrc
文件及其username
配置的设置.
但是,这些.hgrc
用户似乎与远程服务器.htpassword
文件中指定的用户完全没有关系.
这意味着我最终可以推送到来自"米老鼠"和"唐老鸭"的中央存储库,这是无用的.
如何强制本地.hgrc
用户名的端到端映射到.htpassword
用户维护,即确保指定.hgrc
的.htpassword
用户匹配用户?
这不是一个答案,但值得一提的是:每个人一开始都担心这一点,但实际上这不是问题.
当用户提交DVCS时,无论是Mercurial,git还是其他,他们不一定连接到您控制的任何身份验证/授权系统,因此他们的提交必须(本地)提交他们想要的任何作者信息断言.您可以稍后将这些更改集拒绝push
到您控制的repo/server上,但这对您和他们来说都是一个很大的麻烦.这不仅仅是重新设置他们的名称/密码,他们必须改变该变更集的历史记录以及所有后续变更集以更改作者信息.
完全不满意的解决方案列表是:
如果您肯定不能冒险进入特定仓库的伪造变更集,那么使用人工过滤器,人们推送到共享仓库A,只有审查员/ buildmanager /您可以从仓库A推送到回购B,其中回购B是官方构建来自的地方.Mercurial本身使用这个系统.
最后我的建议是不要担心.值得招聘的开发人员很自豪地将他们的名字写在他们的承诺上,如果你没有值得雇佣的开发人员,你已经注定要失败了.