Apache vHost - 最佳化且安全

Apache vHost - 最佳化且安全

我看了一下規範主題ServerFault 已經出現了,很遺憾的是我所追隨的「Apache vHost」出現在未解答的問題清單中。我發現這有點令人驚訝,因為有很多人問這個問題。

無論如何,我的問題並不是“如何”,而是在虛擬主機設定檔中使用的“最佳實踐”是什麼?我有以下虛擬主機:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /home/webmaster/examplesite.com/htdocs
    ErrorLog /home/webmaster/examplesite.com/logfiles/error.log
    CustomLog /home/webmaster/examplesite.com/logfiles/access.log combined
</VirtualHost>

它完成了工作並讓事情正常運轉,但是我想知道我是否可以改進它。我特別想確保以下問題得到解決:

  • 我的網站的安全性如何?
  • 我想要一個“上傳”資料夾,用戶可以在其中發布圖像。我需要在 vHost 檔案中添加一些內容嗎?
  • 上述設定是否優化了我的網站,或者我可以進一步優化它嗎?
  • 我可能還錯過了什麼嗎?

答案1

我的網站的安全性如何?

儲存日誌檔案以便可以公開存取是一個壞主意。錯誤訊息列印應該在生產中關閉,因此攻擊者是盲目的(他們不能使用錯誤訊息來攻擊你[1])。透過存取錯誤日誌,他們有更大的機會嘗試和犯錯。

我想要一個“上傳”資料夾,用戶可以在其中發布圖像。我需要在 vHost 檔案中添加一些內容嗎?

您想要上傳的位置外部文檔根目錄,以減少使用者上傳腳本(例如 PHP)然後瀏覽並運行它的機會。當然,這不是您應該擁有的唯一保護,但它肯定是其中的組成部分之一。

上述設定是否優化了我的網站,或者我可以進一步優化它嗎?

您無法使用虛擬主機真正優化您的網站 - 這是 Apache 等級的配置(超出了這個問題的範圍。)

我可能還錯過了什麼嗎?

說實話,這很難說。每個人都有不同的要求。例如,如果您的網站是example.com- 您希望www.example.com也能正常工作嗎?如果是這樣,你就錯過了一個ServerAlias.

[1] 想像一下他們可能會產生「無效 SQL」錯誤。他們知道他們發現了一個未清理的輸入,並很快找到了侵入您網站的方法。最糟糕的是:此類攻擊可以自動化。

相關內容