我的/ var / www对外界有多可见?


8

我想这更多是一个关于房屋保管的问题,但这是可行的。

如果我创建了一个index.html名为的备份文件index.html.bak,那么是否有可能有人从外部使用http我的apache2服务器列出我/var/www目录的内容?我目前不知道这样做的方法,但这可能是由于我在这方面的经验不足。我应该在其他地方存储不需要查看的文件吗?

当前,我认为有人可能会发现文件的唯一可行方法是,是否存在指向该文件的显式链接。 我的网站目录有多可见?

Answers:


11

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

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

一般而言:

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

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

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

然后,您可以使用apache拒绝对.svn / 、. git /,RCS /等子目录的访问-例如,请参见/programming/398008/deny-access-to-svn-folders-on-apache

当然,有效地使用修订控制将需要一点纪律。您必须养成在每次更改时都检查一下更改的习惯-这是值得的。


15

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


5
对。如果您不想在网络上发布某些内容,请不要将其保留在其中/var/www
jscott 2012年

对于tl;drCraig的答案,这是对那些人的最佳答案,尽管Craig的答案更为详尽。
tacotuesday,2012年

@nonak都投票了:)
jscott 2012年

在猜测的主题上,猜测找到index.html.bak或index.bak.html等将花费多长时间。任何显而易见的事情实际上都没有机会。
约翰·加迪尼尔

1
这些天计算机在猜测。因此,请勿依赖模糊性来保护任何重要内容。顺便说一句,我赞成其他答案。:)
迈克尔·汉普顿

2

如果您启用了目录列表,那么该文件肯定是可见的。即使未启用目录列表,也不建议将您不希望别人看到的文件保存在/ var / www中,因为它是为公共文档制作的。


0

将备份文件保存在中没有任何意义/var/www

进行备份时可以快速修复问题。我建议您在某个核心驱动器(外部环境无法访问)中创建一个新的备份目录,并将备份存储在该目录中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.