2012-02-22 59 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。