1. 嚴格過濾或禁用 LFI:在程式碼中,絕對不要讓使用者輸入的參數(如 ?page=...)直接決定要讀取哪個檔案。應使用「白名單」限制,只允許讀取固定的網頁檔案。
  2. 關閉錯誤顯示:正式環境或公開的練習網頁,應關閉詳細的錯誤回報(如 PHP 的 display_errors = Off),不讓駭客輕易探知日誌路徑。
  3. 限制日誌檔案權限:確保執行網頁程式的使用者帳號(如 www-data),沒有權限去任意讀取或執行系統日誌資料夾。
  4. 過濾日誌輸入(Log Sanitization):在系統將資料寫入日誌前,先過濾掉換行符號(\n, \r)或特殊的程式標籤(如 <、>),讓它變成單純的文字,失去執行能力。

您在寫網頁練習時,是否有設計類似 「點擊選單,切換不同頁面內容」 的功能呢?如果有,可以分享那段切換頁面的程式碼,我們一起看看它有沒有被 LFI 攻擊的風險。