![Web 服务器安全性的目录结构](https://linux22.com/image/583005/Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E5%85%A8%E6%80%A7%E7%9A%84%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84.png)
我在应用程序中有很多目录,例如
root
index.php
modules/
includes/
data/
themes/
and
etc.
我已将 index html 文件放在每个文件夹中,以使其简单安全。但我认为必须有一些更好、更安全的技术来确保安全。
我的问题是我们如何通过 htacess 和 php 来做到这一点。
答案1
移动所有不需要将其下的文档根取出。
答案2
请记住,您不需要将所有文件都放在服务器目录结构的公开可访问部分。假设您的文档根目录位于:
/applicationname/www/
您可以将公众不需要看到的东西移至:
/应用程序名称/包括/
/应用程序名称/数据/
...等等。
您仍然可以在代码中引用这些位置(因为它使用服务器的目录结构),但其他人将无法访问它,因为它在您的文档根目录之外。
答案3
我会像 Andrew 一样将它们列为 /includes/ 或 /data/,但放置 index.html 仍然是个好主意。根据您使用这些文件的用途,您可以使用 IP 安全性。$_SERVER['REMOTE_ADDR'] ==“您的 ip”,当然,如果这在某种意义上应该是公开的,这将不是一种安全性。
答案4
Options -indexes
这与在每个文件夹中放置一个 index.html 文件具有相同的效果,因此人们必须猜测 URL,而不是获取一个很好的文件名列表。
为了保护包含文件夹(以及可能的数据),您可以在里面放置一个包含以下内容的 .htaccess 文件:
Order allow,deny
Deny from all
Satisfy All
这样,就没有人可以从互联网访问这些文件,只有 PHP 可以包含/读取它们。