隐藏'connect.php'文件密码的最常用方法是什么?

时间:2011-06-08 16:14:10

标签: php mysql encryption passwords password-protection

随着我的服务器变得越来越大,越来越多的用户可以访问它,我不希望他们看到MySQL用来连接PHP的密码,这些密码存储在我的'connect.php'中每个页面都有文件和要求。但是,它只是与其他php文件位于同一目录中。

我考虑使用第二个'connect.php'类文件只能访问一个表,它存储加密的密码以连接到MySQL,但是我会遇到隐藏密钥的问题。< / p>

更改权限也不起作用,如果您chmod o-r或类似内容,显然无人可以访问Web应用程序。

是否有可以解决这个问题的方法,或者我应该自己解决?问题是,如果有一种可接受的方法,我不希望它过于复杂。

6 个答案:

答案 0 :(得分:8)

我强烈建议您在connect.php上方的一个目录中移动DOCUMENT_ROOT,以便无法从您的网络服务器访问它。

您的php文件当然可以包含connect.php的完整或相对路径,例如:

require_once('../connect.php');

答案 1 :(得分:7)

所有答案都有很好的建议,但未能解决这样一个事实:任何具有服务器访问权限的用户都可以窥探并在编辑器中打开config.php。

将配置文件设置在公共网站空间之外的目录中,网络服务器应该是此目录的所有者,并且应将权限设置为700.它包含的所有文件应为644.这种方式除了webserver用户或root之外,没有人能够读取文件内容。

这是一种常见的方法,但由于安全性是一个非常广泛的主题,因此主题还有很多,但优于90%的设置。

答案 2 :(得分:2)

设置$password,连接,然后设置unset() $password。他们应该永远无法恢复它。 我认为无论如何都不能下载PHP文件,也看不到。它始终由服务器编译。

答案 3 :(得分:2)

用户无法获取服务器端文件的内容,除非您自愿(或错误地)向他们显示。

最有可能通过FTP访问进行任何妥协,在这种情况下,黑客无论如何都可以访问网络服务器上的所有文件。

答案 4 :(得分:2)

将其移至www的根目录后的文件夹,例如www / includes。 从那里,您可以使用htaccess来阻止查看/ includes下的文件的权限。

连接到SQL数据库后,使用unset($ username,$ password),以便没有人回应密码用户名的安全威胁。

最后,最好有专门的托管,这样任何有权访问Web服务器的人都无法查看其他用户的文件。

答案 5 :(得分:0)

或者,您可以完全删除密码并配置DB服务器,只接受来自localhost的连接。这只会在专用主机上运行,​​但如果您使用共享主机,则存在安全风险。