公共用户如何访问public_html文件夹中的PHP文件的内容?如果他们知道地址,www.mysite.com/router.php是否可以下载该文件?
我试图了解是否可以安全地将数据库密钥存储在PHP文件中。
答案 0 :(得分:3)
正确回答这个问题需要写一本书。但简而言之:
如果您的服务器配置正确且PHP代码中没有错误,则公众无法访问PHP文件的内容。
如果配置不当或存在错误,则任何攻击者都可以使用这些内容。
有些开发人员会将他们的配置移到public_html文件夹之外的某个地方,但是这并没有为许多常见的错误/安全漏洞提供任何保护,所以这是一个不必要的步骤,你不能依赖它。
您应该确保获得对该文件内容的访问权限的任何人都无法对其执行任何操作。例如,正确的salt和hash用户密码,并使用未在服务器上存储(密码)的密码加密敏感数据(信用卡等),并在数据库服务器上具有良好的防火墙,以便知道登录凭据不允许访问数据库。
答案 1 :(得分:1)
鉴于wordpress本身存储数据库连接信息in a php file是一个非常好的保证,正确配置的Web服务器不会以纯文本形式提供该文件。
答案 2 :(得分:0)
这是一个非常粗略的解释,可以帮助您了解当有人通过HTTP请求PHP文件时会发生什么:
+--------+ 1. +--------+ 2. +-----+
| | ===> | | ===> | |
| Client | | Apache | | PHP |
| | <=== | | <=== | |
+--------+ 4. +--------+ 3. +-----+
您的Web服务器负责通过HTTP传入的所有流量,因此假设它已正确配置为将所有请求传递给PHP文件到PHP解释器,那么任何人都无法查看PHP文件的原始内容
如果您没有安装PHP或Apache配置错误且不了解如何处理PHP文件,那么这些文件将作为纯文本提供,而在这种情况下,它们的内容将是公开的(步骤2和3将不存在) )。
答案 3 :(得分:0)
您可以将任何内容存储在php文件中,只需确保您不回显任何密码或数据库凭据。您在文件中定义的所有内容(例如$password, $db_host
)都是私有的。