Apache安全性

我一直在阅读服务器/ Apache的安全性,我遇到了矛盾。 我读过,你不应该提供任何不在Apache范围内的文件,但是我被告知你应该把文件放在Apache范围之外。

我目前的设置是:

Apache的范围:public_html / front。 在前面的文件夹我保持html,css和javascript文件。 我还有一个文件夹public_html / back,在Apache的范围之外,它包含我的PHP,数据库和网站后端文件。 所有的网站目录和文件都有一个万维网数据的所有者/组。 我在免费的BSD上运行。

我应该有Apache以外的网站文件? 任何其他服务器安全提示,表示赞赏

如果你想要Apache提供的文件,他们应该可以被Apache访问。

但是,您不应该让Apache有权访问任何不需要的文件。

如果你有一个上传目录,你可以让Apache能够在这个目录下编写,但是它不能写入你的PHP文件,CSS等等。

你的设置是完全可以接受的,我会说甚至build议。

DocumentRoot理想情况下应该只指向需要提供给最终用户的文件。 面向客户的脚本使用的脚本和其他资源可以位于不同的目录中(例如public_html / back)。 例如,您的configuration文件,数据库连接类等将位于非公用文件夹中。

如果你把所有的东西放在DocumentRoot下面,那么你必须保证这些文件不被传送给最终用户(例如,通过使用.htaccess阻止下载,或者直接加载这些文件时使用PHP来终止请求) 。

我要说的一点是,名称“public_html”build议公开的文件。 在我们公司,我们有DocumentRoot指向public_html(或等价)和“后退”文件在一个完全不同的目录下,以避免混淆。