php - 如何在共享主机中存储配置

php - How to store configuration in shared hosting

假设我们有一个共享主机。 Web 根目录位于 /home/username/www/。现在,我有一个 PHP 应用程序,它读取位于 /home/username/www/include/config.json 的配置文件。此配置文件存储密码和其他配置信息。假设无法访问 /home/username/ 或 Web 根目录之外的任何目录,我将如何从人们直接 GET 那里保护 config.json

如果将配置信息存储在明文文件中不可行,请提供其他方法。

有两种方法可以保护目录结构并防止读取目录中的其他文件和内容。

禁用目录内容列表

使用 htaccess 将以下 .htaccess 文件放入将禁用目录列表。

Options -Indexes

使用index.html 如果服务器不允许这样做,那么最简单的方法是在所有目录中放置一个虚拟 index.html 文件。 这样当访问目录路径时,index.html 将打开。

将资源放在外面WEB_ROOT

在服务器上托管应用程序时,路径通常是这样的:

/var/www/

/home/username/www/

所有网页内容都保存在 www 内,只有它可以在网站上访问。但是那些不能直接从 url 访问的内容可以保存在 /www.

之外

例如上传的图片,或者资源文件,或者包含数据库连接参数的文件等等。

php 个浏览器在

中调用的文件
/var/www/

中的其他资源文件
/var/outside/

通过这样做,即使启用了目录列表,文件也会自动对外界不可见。

您的 include 目录中需要一个 .htaccess 文件,以使其从外部不可用:

Options -Indexes
Order allow,deny
Deny from all

或 apache 2.4

Options -Indexes
Require all denied

另一个解决方案是将包含移动到 /home/username/include