我很好奇为什么在Apacheconfiguration中默认启用Options Includes Indexes 。
任何人都知道这是为什么,因为它出于安全原因通常是皱眉?
传统?
因为它一直是这样的?
因为Apache项目不想破坏现有的网站?
因为在启动服务器之前,你应该真的在检查你的configuration吗?
上述所有的。
服务器端包括 ( Includes )通常是皱眉,特别是因为有更好的方式来生成dynamic内容这些天。 如果服务器上没有内容使用它们,则不存在真正的安全风险暴露。 最好的做法是把他们closures,以防有人设法危害你的机器,并上传一个页面,使用它来做一些令人讨厌的事情。
Apache提供的简单Includes指令在这方面特别差,因为它允许您执行程序(作为Apache用户)作为SSI指令的一部分。 如果你必须启用服务器端包含,你应该评估你是否需要运行程序的能力,如果没有,你应该使用IncludesNOEXEC来代替裸Includes指令。
自动索引生成 ( Indexes )是一个信息泄漏漏洞:如果没有索引文件,服务器将愉快地列出目录中的所有内容(包括链接到..以让您浏览备份树)。
由于目录浏览链接还存在这样的风险:configuration错误的服务器会让用户浏览他们的网页根目录并读取像/etc/passwd这样的敏感内容。
如果你的服务器configuration正确(Web根目前没有敏感的信息,没有能力浏览你的Web根目录),启用Indexes并不是很大的安全风险,对于文件服务器(你不必手动维护索引),但是如果你不需要生成自动索引,那么closures它可能是一个好主意。
如果您的Web服务器configuration较差,请不要将其作为“安全通过隐藏”来保护您: http://example.com/../../../../../../../../etc/passwd : http://example.com/../../../../../../../../etc/passwd自己在一个适当的穷人configurationselect的系统上。