如何验证类似.pgpass文件机制的MongoDB连接?

时间:2013-11-14 16:12:05

标签: php security mongodb authentication encryption

我想从php驱动程序验证我的MongoDB连接,但我不希望我的密码以明文形式存储在我的代码库中。我更喜欢类似于Postgresql的.pgpass文件的机制。

我想在某个地方使用系统上的文件进行身份验证,以便我的MongoDB密码不会通过我们的版本控制存储库和服务提供商分发给全国各地的数十台计算机。

如果MongoDB和/或php驱动程序没有开箱即用的这个功能,我能想到的最好的替代方法是在代码库中使用高度加密的密码,在机器上使用私钥文件来解密密码即时进行MongoDB身份验证。使用持久连接和/或APC缓存的组合,我可以降低为每个连接解密文件的性能损失。

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:0)

我不熟悉Postres中的.pgpass是如何工作的,我无法想象它如何与PHP一起工作 - 或者你将如何以不同的方式在VCS中分发该文件。 听起来就像文件系统中的随机文件一样,你可以简单地运行

$password = file_get_contents("/home/username/.mongodbpass");

MongoDB 2.4支持外部身份验证机制,例如Kerberos和LDAP身份验证,如果这是您正在寻找的东西。 或者,MongoDB 2.6支持X509身份验证,但直到明年年初才会发布。

除此之外,只有标准的用户名/密码组合。