我的 /var/www 对外界有多明显?

Cha*_*son 8 http apache-2.2

我想这更像是一个看家问题,但它就在这里。

如果我创建了我的index.html被调用的备份文件index.html.bak,是否有可能http在我的 apache2 服务器上使用的外部人员能够列出我/var/www目录的内容?我目前不知道这样做的方法,但这可能是由于我在这方面缺乏经验。我应该将不需要的文件存储在其他地方吗?

目前,我认为有人可能会发现该文件的唯一可行方法是某处是否有指向该文件的显式链接。 我的 Web 目录的可见性如何?

Mic*_*ton 15

如果您指定Options -IndexesDirectory问题的,那么 Apache 将不会生成目录列表。但是,如果有人猜测文件名,如果操作系统允许 Web 服务器访问该文件,他们仍然可以访问它。

  • 是的。如果您不想在网络上提供某些内容,请不要将其保存在`/var/www` 中。 (5认同)

cas*_*cas 11

要直接回答您的问题 - 您可以将此类文件保存在其他地方,也可以配置 apache 以拒绝访问它们 - 拒绝访问 *.bak 相对简单。

除非配置为不这样做(如上面的 MH 所述),否则 Apache 将为任何不包含索引文件的目录生成并显示目录列表 - 由 DirectoryIndex 指令定义,但通常是 index.html、index.htm、 index.php,和类似的。

更一般的说明:

您可能需要考虑使用诸如 SVN 或 git(甚至 RCS)之类的修订控制系统来保留旧版本和网页的更改历史记录(包括查看更改内容和更改时间的能力,更重要的是,能够恢复到以前的版本)

git 和 svn 都需要在其他地方设置一个存储库。RCS 是相当原始和基本的,但不需要任何设置,它将修订历史保存在同一目录或 ./RCS 子目录(如果存在)中。RCS 的一个小问题是,当您签入文件时,它会将权限更改为只读,因此您必须再次签出它才能再次编辑它(或用于ci -l签入文件并立即检查出来)。

对于这项工作,IMO git 可能有点矫枉过正,SVN 在管理一组手动编辑的 HTML 页面的修订历史的复杂性与能力方面接近理想,而 RCS 是过时的但仍然有用。使用 RCS,您只能直接在 /var/www 中编辑文件,这意味着一旦保存文件,更改就会“生效”。使用 svn 或 git,您可以检出本地副本,例如,您台式机上的主目录,编辑文件,检入更改,然后检出更新到服务器上的 /var/www 中完成的。您还可以先将更改签出到临时服务器以进行测试,然后再在生产服务器上签出它们。

然后,您可以使用 apache 拒绝访问 .svn/、.git/、RCS/ 等子目录 - 例如,请参阅/sf/ask/27860591/

当然,有效地使用修订控制需要一些纪律。您必须养成在进行更改时检查更改的习惯 - 值得付出努力。