2013-08-04 80 views
0

如何限制用戶進入根目錄並且無法訪問根目錄的父目錄。如何對付dot dot斜槓攻擊?

我已經安裝的EasyPHP並按照我正在考慮爲根:

http://127.0.0.1/projects/Web%20Developement/aureus/files/ 

我不希望用戶能夠移動到父目錄,但是當我在結尾處加上「點點斜線」 ../上面的URL我可以訪問「aureus」目錄。我怎樣才能通過.htaccess或其他方式來阻止這種情況?

+0

這不是真正的服務器的問題;你可以在這裏做的唯一原因是你被允許進入金黃色葡萄球菌。如果你去'http://127.0.0.1 /../',你會被阻止。同樣,如果您發佈的完整路徑是您的實際根路徑,您將無法訪問「aureus」,因爲服務器比這更聰明。 – Dave

+0

Wny不只是將您的DocumentRoot設置到正確的目錄? (推測是'/ projects/Web%20Developement/aureus/files /'。) –

回答

0

你不能請正確使用.htaccess。您需要在主配置文件中編輯域的配置。當你進入httpd.conf文件或虛擬主機的包含文件時,您需要查找您爲服務器設置的DocumentRoot。 Web服務器只能訪問您授予的內容。

如果您可以通過網絡或另一臺計算機上的瀏覽器訪問您要鎖定的文件夾,則需要根據您正在運行的操作系統查看各種權限設置。您可以限制對文件夾的訪問,並阻止Linux中的用戶使用chmod來查看文件。在Windows中(如果這是您正在運行的),您可以右鍵單擊該文件夾,選擇properties,然後更改security選項卡下的權限。

+0

非常感謝很多人幫忙:) – Labeeb

+0

@ user2437432肯定的事情。這個問題很可能會被移到另一臺服務器上。 –

0

不知道什麼這一切的一點是,但是如果你根本就不想在你的URL任何../,那麼你可以嘗試添加以下內容到htaccess文件:

RewriteEngine On 
RewriteRule ^(.*)\.\./(.*)$ /$1$2 [L,R=301] 
+0

這沒有幫助。讓我解釋一下我希望用戶不能訪問父目錄。我可以在.htaccess中做到這一點嗎? – Labeeb

+0

該規則只是從url中刪除'../'。因此,如果有人嘗試'example.com/any /../ thing',他們將被重定向到'example.com/anything' – Herbert

+0

@ user2437432如果你想拒絕訪問,那麼在父代中創建一個htaccess文件目錄中有'Deny from all',然後在'/ file /'目錄中有'Allow all all'的htaccess文件。 –

0

我想,而不是專門試圖阻止在URL中使用的../,你應該在文件夾htaccess你不希望人們/機器人/其他是英寸

選項 - 索引

將在htaccess文件所在的任何文件夾中停止目錄列表。它將服務於403,但您可以使用htaccess來根據需要提供404或重定向(除了「停止用戶能夠移動到父目錄」我不是100%確定你想要什麼)

乾杯