随着我的服务器变得越来越大,越来越多的用户可以访问它,我不希望他们看到MySQL用来连接PHP的密码,这些密码存储在我的'connect.php'中每个页面都有文件和要求。但是,它只是与其他php文件位于同一目录中。
我考虑使用第二个'connect.php'类文件只能访问一个表,它存储加密的密码以连接到MySQL,但是我会遇到隐藏密钥的问题。< / p>
更改权限也不起作用,如果您chmod o-r
或类似内容,显然无人可以访问Web应用程序。
是否有可以解决这个问题的方法,或者我应该自己解决?问题是,如果有一种可接受的方法,我不希望它过于复杂。
答案 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的连接。这只会在专用主机上运行,但如果您使用共享主机,则存在安全风险。