2012-02-22 78 views
1

all!“Index of ...”目录列表保护

在我们的服务器上我们有一个目录“文件”为学生和教师的材料:

http://sample.ru/files/4students/ 
http://sample.ru/files/4teacherszzz/ 
http://sample.ru/files/markszzz/ 
... 

每个目录,当你输入到你的网络浏览器显示你/文件/ 4students的人指数/'页面列出文件/子目录。

但是,我们遇到了问题:当学生键入'http://sample.ru/files/'时,他可以看到所有其他文件夹!但学生不能看到教师档案(在文件夹4teacherzzz和markszzz)。

所以,我们把空白index.html放到/ files /中。通过输入这个URL,学生看不到其他文件夹。现在,这是个问题:任何一个学生(他只知道'http://sample.ru/files/4students/'url)在'http://sample.ru/files /'中获取URL的列表(http://sample.ru/files/4students /'url) (可以通过特殊的输入'/files/4students/../'等)?如何?以及如何否认这一点?

的问题是,我们必须离开那个文件夹系统---它是教师更方便(他们只将文件复制到一个文件夹服务器和文件会自动出现在“索引...”页)

感谢您的回复!

+0

听起来像是http://s.tk/webmasters的问题 – Cheekysoft 2012-02-22 14:32:04

回答

2

根据您的品牌的网络服务器 - 没有。大多数正常来源的服务器品牌(如Apache,IIS)都会特别注意关于崩溃尝试../ ..和类似的顽皮。 (请注意,一些优化代理/缓存和类似非原产地使用的服务器可能不会那样做)。

但是无论你想非常仔细地阅读文档。并且请注意,大多数服务器,如Apache和IIS,都有针对这个特定问题的特定指令。

看看“索引” - .i.e。

<Directory /something/> 
    option -Indexes 

...

记负 - 将很明确禁用索引(小心符号链接虽然 - 或者也可以使用-FollowSymLinks)。 http://httpd.apache.org/docs/2.0/mod/core.html有完整的故事。

检查明确“目录指令”的一节,注意文字:

小心的目录路径参数:他们必须逐字匹配 Apache用于访问文件的文件系统路径。 应用于特定命令的指令不适用于通过不同路径从同一目录访问的文件 ,例如通过不同的符号链接。

和它下面的例子。所以你通常会想锁定(-Indexes)在较低的级别,然后为你允许索引的学生做一个目录(匹配)。

您添加index.html的技巧通常可行 - 但请注意,这只是因为mod_autoindex以及时方式对其进行了修改。这不像上面那样保证 - 特别是当您的服务器中包含MultiView或其他本地化/国际化和类似(语言/字符集)变体时。见http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html

希望这会有帮助,

Dw。