将私人 PHP 文件存储在 public 目录之上并使用 require_once 加载它们是否安全?
Safe to store private PHP files above public directory and load them using require_once?
所以目前我的网站结构如下:
/private
/databaseconfigfile.php
/otherprivatestuff.php
/public
/index.php
/pages
/page1.php
/page2.php
我使用以下方法在每个页面的顶部导入这些私人文件:
require_once('../databaseconfigfile.php');
所以我可以访问其中的 define
变量以获取 populate/generate 内容。
它们包含数据库详细信息、API 各种第 3 方工具(如 SMTP、AWS 等)的密钥。这是正确的方法吗?或者我应该使用不同的 PHP function/approach 来访问私人文件吗?我担心这种方法可能容易受到目录遍历攻击。
是的,这是一个很好的做法。但是,如果不可能 - 将一些文件放在网站 www 目录之上,那么您可以在私有文件夹中创建 .htaccess 文件(用于 apache),内容为:
deny from all
它阻止访问目录中的任何文件。
Is this the correct approach?
是的。
Or should I be using a different PHP function/approach to access private files?
不,将它们保留在文档根目录之外就足够了。例如,如果您的应用程序某处存在 Local File Inclusion 漏洞,您应该专注于修复漏洞,而不是试图隐藏您的敏感文件。
默默无闻的安全根本就不是安全。
所以目前我的网站结构如下:
/private
/databaseconfigfile.php
/otherprivatestuff.php
/public
/index.php
/pages
/page1.php
/page2.php
我使用以下方法在每个页面的顶部导入这些私人文件:
require_once('../databaseconfigfile.php');
所以我可以访问其中的 define
变量以获取 populate/generate 内容。
它们包含数据库详细信息、API 各种第 3 方工具(如 SMTP、AWS 等)的密钥。这是正确的方法吗?或者我应该使用不同的 PHP function/approach 来访问私人文件吗?我担心这种方法可能容易受到目录遍历攻击。
是的,这是一个很好的做法。但是,如果不可能 - 将一些文件放在网站 www 目录之上,那么您可以在私有文件夹中创建 .htaccess 文件(用于 apache),内容为:
deny from all
它阻止访问目录中的任何文件。
Is this the correct approach?
是的。
Or should I be using a different PHP function/approach to access private files?
不,将它们保留在文档根目录之外就足够了。例如,如果您的应用程序某处存在 Local File Inclusion 漏洞,您应该专注于修复漏洞,而不是试图隐藏您的敏感文件。
默默无闻的安全根本就不是安全。