php-如何在共享主机中存储配置
假设我们有一个共享主机。web根目录位于php-如何在共享主机中存储配置,php,json,config,shared-hosting,Php,Json,Config,Shared Hosting,假设我们有一个共享主机。web根目录位于/home/username/www/中。现在,我有一个PHP应用程序,它读取一个配置文件,位于/home/username/www/include/config.json。此配置文件存储密码和其他配置信息。假设不可能访问/home/username/或web根目录以外的任何目录,我该如何直接从人们那里获取config.json 如果无法将配置信息存储在纯文本文件中,请建议其他方法。有两种方法可以保护目录结构并防止读取目录中的其他文件和内容 禁用目录内容列
/home/username/www/
中。现在,我有一个PHP应用程序,它读取一个配置文件,位于/home/username/www/include/config.json
。此配置文件存储密码和其他配置信息。假设不可能访问/home/username/
或web根目录以外的任何目录,我该如何直接从人们那里获取config.json
如果无法将配置信息存储在纯文本文件中,请建议其他方法。有两种方法可以保护目录结构并防止读取目录中的其他文件和内容 禁用目录内容列表 使用htaccess 将以下内容放入.htaccess文件将禁用目录列表
Options -Indexes
使用index.html
如果服务器不允许这样做,那么最简单的方法是在所有目录中放置一个伪index.html文件。
因此,当访问目录路径时,index.html将打开
将资源保留在WEB\u根目录之外
在服务器上承载应用程序时,路径通常如下所示:
/var/www/
或
所有web内容都保存在www中,只有它才能在网站上访问。但是那些不能直接从url访问的内容可以保存在/www
之外
例如,上载的图像、资源文件或包含数据库连接参数或任何内容的文件
浏览器在中调用的php文件
/var/www/
中的其他资源文件
/var/outside/
通过这样做,即使启用了目录列表,文件也会自动对外部世界不可见。您的include目录中需要一个.htaccess文件,该文件将从外部不可用:
Options -Indexes
Order allow,deny
Deny from all
或者对于Apache2.4
Options -Indexes
Require all denied
另一个解决方案是将include移到/home/username/include为什么不能将其移到webroot之外?这是首选方案。我还建议对该特定文件使用.htaccess块。您应该创建一个API来访问它。类似于
domain.com/config/get/
。然后,如果您想保护它,您可以添加一些查询,如令牌等。@Farkie您不能将其移动到web根目录之外,htaccess
就是其中之一!我全忘了。感谢您的回答(我无法将文件移到web根目录之外)
Options -Indexes
Require all denied