2014-01-06 122 views
0

我有一個WAMP堆疊安裝在我的電腦。昨天,我正在使用PHP的文件系統,並發現我可以訪問我的硬盤上的任何目錄,甚至超過網站文檔根目錄。這是我想避免的一個明顯的安全問題。限制WAMP的文件系統訪問

目前,我用幾個虛擬主機在我的WAMP用hosts文件自定義域疊加一起。

我找的一些配置,我可以在httpd.conf文件作出或可能的話在.htaccess文件,將限制腳本在各個網站的文檔根目錄訪問更好。當我添加或刪除虛擬主機時,代碼不需要任何更改會更好。

+0

可以從瀏覽器訪問文件PHP你上面的'DocumentRoot'文件夾? – anubhava

+0

@anubhava是的,即使它可以刪除它們 –

+0

這就是爲什麼你不安裝wamp。 Apache不提供編輯或刪除目錄列表的方法。你看到的是什麼讓你刪除文件?這是最簡單的答案http://stackoverflow.com/a/4400412/46675 –

回答

0

人們不應該永遠能夠訪問你沒有任何虛擬主機允許文件夾結合.htaccess文件

如果你有一個虛擬主機,說ben.mydevelopment哪些路由到特定的文件夾,沒有辦法「上」,你不能訪問那個「上面」的文件夾。

您可以使用.htaccess文件使用

Deny from all 

,並把它在相關的文件夾,以拒絕訪問某些文件夾。你不能阻塞整個文件系統,因爲Apache不應該爲你啓動整個文件系統。

你可以列出Apache在其上運行(通過主配置還是虛擬主機),你已經能夠訪問和那些文件夾? (注意:另外,我不會太擔心人們能夠訪問你的數據,大多數防火牆拒絕通過HTTP的入站連接,幾乎所有的家庭路由器都拒絕入站連接,也不知道連接它們的計算機對,所以除非你故意想建立你自己的實時Web服務器,那麼你應該罰款)

+0

我試圖提供幫助,我提供了所有建議,我可以提供您提供的有限信息。我該怎麼幫忙? – BLewis

+0

這不是我正在尋找的。我想阻止PHP訪問其他目錄 –

+0

只是一個說明:我沒有downvoted。這是別人 –

2

我認爲你是從錯誤的角度接近這一點。

通過默認的Apache應該被告知它通過把這樣的事情在httpd.conf文件

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

然後在每個虛擬主機的definintions您指定的內容目錄,網站訪問什麼驅動上有這樣的訪問權限。

<VirtualHost *:80> 
    DocumentRoot "C:/websites/www/site1" 
    ServerName site1.dev 
    ServerAlias www.site1.dev 
    Options Indexes FollowSymLinks 
    <Directory "C:/websites/www/site1"> 
     Order Deny,Allow 
     Deny from all 
     # This is my development version of site1.com and only allowed to be used on my internal network 
     Allow from 127.0.0.1 localhost ::1 192.168.2 
    </Directory> 
    ErrorLog "C:/websites/dev_logs/apache_error.log" 
    CustomLog "d:/websites/dev_logs/apache_access.log" combined 
</VirtualHost> 

另外,如果你想允許改變OrderAllow這樣

<VirtualHost *:80> 
    DocumentRoot "C:/websites/www/site1" 
    ServerName site1.com 
    ServerAlias www.site1.com 
    Options Indexes FollowSymLinks 
    <Directory "C:/websites/www/site1"> 
     Order Allow,Deny 
     # This is the live site can be accessed from the internet 
     Allow from all 
    </Directory> 
    ErrorLog "C:/websites/live_logs/apache_error.log" 
    CustomLog "d:/websites/live_logs/apache_access.log" combined 
</VirtualHost> 

從Internet訪問通過此機制,你知道,通過默認的Apache無法訪問您系統上的任何文件夾,而無需特別授予虛擬主機定義內的訪問權限。