我查看了 ServerFault 拥有的Canonical Topics,遗憾的是,在“Apache vHost”出现在未回答的问题列表中之后。我发现这有点令人惊讶,因为有很多人问这个问题。
无论如何,我的问题不是关于“如何”,而是在虚拟主机配置文件中使用的“最佳实践”是什么?我有以下虚拟主机:
<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 文件中添加一些内容吗?
- 上述设置是否优化了我的网站,或者我可以进一步优化它吗?
- 还有什么我可能错过的吗?
存储您的日志文件以便它们可以公开访问是一个坏主意。错误消息打印应该在生产中关闭,所以攻击者是盲目的(他们不能使用错误消息来对付你[1])。通过访问错误日志,他们更有可能进行反复试验。
您希望将上传放在文档根目录之外,以减少用户上传脚本(例如 PHP)然后浏览到它并运行它的机会。当然,这不是您应该拥有的唯一保护,但它肯定是其中的组成部分之一。
您无法使用虚拟主机真正优化您的网站 - 那是 Apache 级别的配置(超出了这个问题的范围。)
老实说,这很难说。每个人都有不同的要求。例如,如果您的网站是
example.com
- 您是否也希望www.example.com
工作?如果是这样,你错过了一个ServerAlias
.[1] 想象一下,他们可能会生成“无效 SQL”错误。他们知道他们发现了未清理的输入,并迅速找到了侵入您网站的方法。最糟糕的是:这些类型的攻击可以自动化。