use*_*452 6 security documentroot apache-2.2
我有一个关于 Apache 安全性的一般性问题DocumentRoot,该问题来自我在安装 Galaxy(一种生物信息学 Web 服务和基础设施)时阅读的声明。声明说
“请注意,Galaxy 永远不应位于 Apache 的 DocumentRoot 内的磁盘上。
默认情况下,这会将所有 Galaxy(包括数据集)暴露给网络上的任何人。”
本段复制自 https://wiki.galaxyproject.org/Admin/Config/ApacheProxy
所以问题是将某些内容放入DocumentRoot与放入 的子目录之间有什么区别DocumentRoot?即使将内容放在子目录中,默认情况下,所有内容也会暴露给网络上的任何人吗?
如果我把在内容DocumentRoot的的SSL服务器,并且只允许经过身份验证和授权的用户访问,将这一决心在全球范围内访问问题?
更新:感谢大家的深思熟虑的回答。我想我已经回答了所有问题。总结一下:
除非设置了不同的权限,否则所有人都可以访问 DocumentRoot 中的子目录。
SSL 只保护通过网络传输的数据包,而不保护文件的权限。
身份验证/授权将限制谁可以访问 DocumentRoot。
Unix/Linux 文件权限不会影响访问,因为 Web 服务器所有者必须可以访问所有文件。
Joe*_*man 12
DocumentRoot 的子目录仍被视为在 DocumentRoot 中。
当某些软件包建议不要将包的一部分放置在 DocumentRoot 中时,其意图是它实际上应该在 DocumentRoot 之外。
因此,例如,如果您的 DocumentRoot 是/var/www/example.com/html您可能希望将这些文件完全放在其他地方,例如/var/www/example.com/restricted
不,SSL 不能解决,甚至不能解决有关在文档根目录中包含敏感配置文件的问题!
小智 6
要添加到 Joe Sniderman 的答案中,将文件放在文档根目录之外会使在浏览器中输入 url 的用户无法访问它们,但仍可用于在文档根目录中运行的脚本。
例如,您创建了一个匿名化和聚合用户登录数据的报告。您将脚本放在文档根目录中,/var/www/example.com/html/report.php以便其他人可以看到您的站点有多受欢迎。
您的报告必须使用原始用户数据,因此它引用一个文件/var/www/example.com/restricted/login.log作为源。该文件不在文档根目录中,因此除了通过 report.php 之外无法访问,它无论如何都会对数据进行匿名化。您不希望原始数据是公开的,因此您将敏感数据远离文档根目录。
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |