我有一個WAMP堆疊安裝在我的電腦。昨天,我正在使用PHP的文件系統,並發現我可以訪問我的硬盤上的任何目錄,甚至超過網站文檔根目錄。這是我想避免的一個明顯的安全問題。限制WAMP的文件系統訪問
目前,我用幾個虛擬主機在我的WAMP用hosts文件自定義域疊加一起。
我找的一些配置,我可以在httpd.conf文件作出或可能的話在.htaccess文件,將限制腳本在各個網站的文檔根目錄訪問更好。當我添加或刪除虛擬主機時,代碼不需要任何更改會更好。
我有一個WAMP堆疊安裝在我的電腦。昨天,我正在使用PHP的文件系統,並發現我可以訪問我的硬盤上的任何目錄,甚至超過網站文檔根目錄。這是我想避免的一個明顯的安全問題。限制WAMP的文件系統訪問
目前,我用幾個虛擬主機在我的WAMP用hosts文件自定義域疊加一起。
我找的一些配置,我可以在httpd.conf文件作出或可能的話在.htaccess文件,將限制腳本在各個網站的文檔根目錄訪問更好。當我添加或刪除虛擬主機時,代碼不需要任何更改會更好。
人們不應該永遠能夠訪問你沒有任何虛擬主機允許文件夾結合.htaccess文件
如果你有一個虛擬主機,說ben.mydevelopment哪些路由到特定的文件夾,沒有辦法「上」,你不能訪問那個「上面」的文件夾。
您可以使用.htaccess文件使用
Deny from all
,並把它在相關的文件夾,以拒絕訪問某些文件夾。你不能阻塞整個文件系統,因爲Apache不應該爲你啓動整個文件系統。
你可以列出Apache在其上運行(通過主配置還是虛擬主機),你已經能夠訪問和那些文件夾? (注意:另外,我不會太擔心人們能夠訪問你的數據,大多數防火牆拒絕通過HTTP的入站連接,幾乎所有的家庭路由器都拒絕入站連接,也不知道連接它們的計算機對,所以除非你故意想建立你自己的實時Web服務器,那麼你應該罰款)
我試圖提供幫助,我提供了所有建議,我可以提供您提供的有限信息。我該怎麼幫忙? – BLewis
這不是我正在尋找的。我想阻止PHP訪問其他目錄 –
只是一個說明:我沒有downvoted。這是別人 –
我認爲你是從錯誤的角度接近這一點。
通過默認的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>
另外,如果你想允許改變Order
和Allow
這樣
<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無法訪問您系統上的任何文件夾,而無需特別授予虛擬主機定義內的訪問權限。
可以從瀏覽器訪問文件PHP你上面的'DocumentRoot'文件夾? – anubhava
@anubhava是的,即使它可以刪除它們 –
這就是爲什麼你不安裝wamp。 Apache不提供編輯或刪除目錄列表的方法。你看到的是什麼讓你刪除文件?這是最簡單的答案http://stackoverflow.com/a/4400412/46675 –