Apache vHost – 优化和安全

我看了一下Canonical Topics ServerFault,可悲的是我之前的“Apache vHost”就是没有回答的问题。 我发现这有点令人惊讶,因为有很多人只是问这个问题。

无论如何,我的问题不是关于“如何”,而是关于在虚拟主机configuration文件中使用的“最佳实践”是什么? 我有以下的虚拟主机:

<VirtualHost *:80> ServerName example.com DocumentRoot /home/webmaster/examplesite.com/htdocs ErrorLog /home/webmaster/examplesite.com/logfiles/error.log CustomLog /home/webmaster/examplesite.com/logfiles/access.log combined </VirtualHost> 

它做的工作,并得到的东西工作,但是我想知道,如果我能改善它。 特别是我想确保以下问题得到解决:

  • 我的网站有多安全?
  • 我想有一个“上传”文件夹,用户可以发布图像。 我需要添加一些东西到vHost文件?
  • 上述设置是否优化了我的网站,还是我可以进一步优化?
  • 还有什么我可能错过了?

我的网站有多安全?

存储您的日志文件,以便他们可能公开访问是一个坏主意。 错误消息打印应该在生产中closures,所以攻击者是盲目的(他们不能使用错误消息对你[1])。 通过访问错误日志,他们有更大的尝试和错误的机会。

我想有一个“上传”文件夹,用户可以发布图像。 我需要添加一些东西到vHost文件?

您希望将上载放在文档根目录之外 ,以减less用户上传脚本(例如PHP)的机会,然后浏览并运行它。 当然,这不是你应该拥有的唯一保护,但它肯定是其中的一个组成部分。

上述设置是否优化了我的网站,还是我可以进一步优化?

你不能用虚拟主机真正地优化你的网站 – 这是Apache级别的configuration(这个问题的范围之外)。

还有什么我可能错过了?

说实话,很难说。 每个人都有不同的要求 例如,如果您的网站是example.com ,您希望www.example.com能工作吗? 如果是这样,你错过了一个ServerAlias

[1]想象一下,他们可能会产生一个'无效的SQL'错误。 他们知道他们已经find了一个没有清理的input,并很快find了一种方法来打入您的网站。 最糟糕的是:这类攻击可以自动化。