2013-02-19 86 views
1

我對.htaccess(簡單的mod_rewrite和基本的拒絕/訪問之外)並不是特別有經驗,並且不確定如何處理以下問題:.htaccess:阻止php腳本訪問父/兄弟目錄

我有一個目錄結構如下:

/parentDirectory 
    /childDirectoryOne 
    /childDirectoryTwo 

我有一個指向/ parentDirectory(我們稱之爲parent.com)域和子域單獨爲每個孩子的目錄(我們將分別稱它們爲one.parent.com和two.parent.com)。

這些都位於共享主機上。我需要能夠授予對子目錄的ftp訪問權限,但現在的問題是,有人可以將php文件上傳到childDirectoryOne,該子目錄掃描父目錄,從而發現其兄弟目錄,然後可以進入兄弟目錄並從文件中獲取敏感信息(如dbConfig文件)。

我一直在試圖做的事(迄今爲止沒有成功)開發了一組.htaccess文件,以防止children目錄中的腳本訪問父目錄或兄弟目錄。我甚至不確定這是否可能。不幸的是,我的共享主機不支持設置chroot jail,所以這是我尋找解決方案的最後一個選項(接下來爲每個ftp用戶購買主機,以便他們無法訪問其他信息)。

+0

你試過設置open_basedir php的設置嗎? – regilero 2013-02-19 21:25:36

+4

'.htaccess'如果絕對是錯誤的,隻影響web-server/apache(?)而不是ftp服務器。 – jeroen 2013-02-19 21:27:00

+0

@ jeroen所以,'open_basedir'不會幫助嗎?那麼你的建議是什麼? – 2015-03-31 15:15:47

回答

1

對於不完全信任的人來說,允許讀取,寫入和執行文件夾的權限被認爲是不好的做法。

能夠上傳任意腳本並在服務器上執行它是一件非常重要的事情(它們訪問另一個文件夾是您最擔心的問題)。人們可以完全摧毀你的服務器及其上的所有站點,訪問你的數據庫,覆蓋任何站點中的其他頁面,然後列表繼續。

我會建議禁用PHP完全上傳文件。你可以把它放在你的.htaccess

php_flag engine off 

話雖這麼說,如果你真的想這樣做,這樣,你就可以使用open_basedir

<Directory /parentDirectory/childDirectoryOne> 
    php_admin_value open_basedir "/parentDirectory/childDirectoryOne" 
</Directory> 
+0

這個想法是,用戶正在上傳他們正在爲網站構建的工具的腳本 - 這些是獨立設計的工具,以及他們自己的數據庫等等。我普遍相信他們,但作爲一項安全措施,我想知道是否可以用.htaccess來做到這一點。更糟糕的情況是,我可以爲他們提供一個上傳文件夾,限制他們的腳本不在運行,審查他們,並自己移動它們,但我希望避免這種情況。 – user1440978 2013-02-21 19:45:54

+0

@ user1440978我已更新我的答案,以更直接地回答您的問題。 – 2013-02-21 20:01:12