最近用剛寫好的微框架 AmyPHP (用菁菁的英文名字命名) 陸續更新所申請的幾個免費 PHP 主機, 測試一下相容性與執行效率, 赫然發現連上首頁竟然出現根目錄的檔案列表如下 :
哇咧, 這不是赤裸裸地暴露網站的結構嗎? 套句公司 MIS 的說法-"嚴重違反資安控管", 對伺服器管理與資安一竅不通的我, 這下可迷惑了, 怎會這樣啦?
稍微做了一下功課 (參考永遠的真田幸村寫的 : Apache設定限制目錄瀏覽的方法), 原來是要修改 Apache 伺服器的 httpd.conf 檔案, 我安裝的是 AppServ, 所以位置在 C:\AppServ\Apache2.2\conf 下,
<Directory "C:/AppServ/www">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
造成此問題的是 "Options Indexes" 這兩個字, 意思是, 當找不到 index.php/index.htm/index.html 時, 就顯示根目錄檔案列表. 請將 "Options Indexes" 這兩個字刪除後重新啟動伺服器即可, 這樣一來伺服器找不到 index 檔時就會顯示 403 Error (找不到網頁). 但是問題還沒有真正解決, 因為在 Local host 我當然可以辦到, 但是在免費的虛擬主機呢? 我根本沒法改呀! 真正的原因是我把網站首頁檔取名為 default.php, 而非 index.php 啊! 所以根本之道除了上述的 httpd.conf 設定外, 還要修改網站之首頁檔為 index.php/index.htm/index.html 才行.
沒有留言 :
張貼留言