什么是保护数据库连接string的最佳方法?

我正在用PHP编写一组数据库驱动的应用程序。 这些应用程序将作为自己的用户在Linux服务器上运行。 其他用户有时可能会在系统上,但有非常受控制的访问。 其他服务器根本无法访问。 我还将向需要编写Perl脚本的开发人员展示一个限制存储过程API,这些脚本使用DBI和我编写的一组函数来访问数据库。

我的问题是什么是最好的方式来保护其中有连接string的configuration文件?

在文件上有[4+] 00权限的其他用户是否足够? 我应该encryption他们吗? 这似乎只是把问题转移到其他地方,所以我担心在哪里存储encryption密钥。 我意识到,Perl开发人员将需要有一个自己的连接string,因为他们将只有执行数据库的权限。

Solutions Collecting From Web of "什么是保护数据库连接string的最佳方法?"

如果这台机器真的是以传统的Unix方式进行管理的,那么J.Random用户并不是一直都在追根究底,我认为文件系统权限是最好的选择。 如果有人获得未经授权的root访问权限,那么不会有任何加密诡计来“保护”连接字符串。

我会将连接字符串中的文件标记为“脚本用户”拥有,并按照您的描述给予访问权限。

(Bravo认识到,在这个例子中,加密连接字符串并不会给你带来什么好处。通过默默无闻的安全措施是相反的。

这里有一个链接到一个免费的Apache模块,它有助于管理对密码存储的访问:

http://uranus.it.swin.edu.au/~jn/linux/php/passwords.htm

这对我来说似乎有些复杂,并且需要在mod_php下运行PHP。 而且它并没有解决未经授权的人访问服务器的可能性,只能读取您的密码文件。

我认为你必须依靠文件权限,并相信未经授权的人不具备sudo到你的PHP应用程序的UID或root权限的能力。

到目前为止,我的最佳解决方案是将配置文件存储在加密分区中,以便直接访问本机的用户不能通过将驱动器连接到另一台计算机并使用文件系统权限来关闭密码,以便人们无法读取该文件来自操作系统本身。

但是,您需要了解,攻击者可以直接访问机器的方式并不多。 如果它正在运行数据库服务器本身,那么如果他可以修改数据库本身,保护配置文件不会有太大的影响。 只要确保一切都尽可能安全,你可能会好起来的。