让管理员无法读取我的sql的用户名和密码


keep the username and password of my sql unreadable by admin

我有一个文件setup.php。
这个文件有mysql用户名和密码。有没有什么方法可以让它不可读或加密,这样即使管理员也无法读取,或者可以读取但仍然不知道密码?

简单的答案是,出于实际目的,您可以让他们更难访问它,但并非不可能。

如果有人可以完全访问服务器文件系统(例如,具有root权限),那么他们可以从该文件系统中读取任何数据,这样他们就可以读取代码和您放置在其中的任何数据文件。由于在该主机上运行的应用程序需要能够使用凭据,因此没有有效的方法可以阻止对该服务器具有完全访问权限的人读取凭据。

你可以混淆它们,让它变得更难。如果你在setup.php文件中加密凭据,然后在另一个php文件中放置解密算法和密钥,这将阻止某人打开文件并获得凭据,但如果他们足够确定,他们总是可以对该解决方案进行逆向工程。

此外,如果他们完全控制了服务器,就可以使用数据包嗅探工具在使用凭据时获取凭据(除非你用SSL之类的东西加密凭据)。

最终,如果有人在运行应用程序并控制服务器,你必须对他们给予一定程度的信任。

顺便说一句,security.stackeexchange.com上有一个stackexchange网站,这是回答此类问题的好地方。

在MySQL中创建一个新用户,并为该用户提供一些基本权限。然后您将有两个用户,您的管理员帐户和具有限制权限的用户帐户。

您也可以拒绝查看setup.php所在的文件夹,执行同样的操作,在操作系统中创建其他用户以限制对该文件夹的限制