一直以來都覺得.rar格式的檔案被存取的話,會以附件的方式開啟。但是*.php.rar這種格式的檔案呢?
我今天試了一下。 apache居然把它當成php來執行了。為什麼會這樣呢?
原來,每遇到一種後雙重後綴名(如xxx.php.rar)的文件,Apache都會去conf/mime.types 文件中檢查最後一個後綴, 如果最後一個後綴並沒有在mime.types文件中定義, 則使用前一個後綴來解釋, 因為在預設情況下,rar並未在mime.types中定義, 故Apache會使用php後綴來解釋檔案。
我們知道,一般網站伺服器都會開放rar附件上傳,並可能保留原始檔案名稱。這樣一來,伺服器就存在很大的安全隱憂了。
既然我們發現了問題,那麼如何讓apache將*.php.rar的檔案當作附件來執行呢?
1.修改mime.types檔,在最後面加一條:
application/rar rar
然後重新啟動Apache,即可