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
假设我们有一个共享主机。 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