Laravel 洩露 env 配置資訊的 2 個原因:whoops 包, 根目錄指向錯誤(回應某白帽子團隊)

Ίκαρος發表於2019-02-06

近日某標題黨“白帽子”團隊號稱 “Laravel 出現 XXX 高危漏洞”,還像模像樣給了幾個解決方法...有點搞笑...
其實 Laravel 洩露 env 配置資訊的原因主要有2個:

原因1. 生產環境 composer install 時沒有加 --no-dev

  1. Laravel 預設依賴的 filp/whoops包 ,當 .env 檔案中配置 APP_DEBUG=true 時,會在出錯頁面列印 .env 配置資訊。
  2. Laravel 常用的 barryvdh/laravel-debugbar 包,當 .env 檔案中配置 APP_DEBUG=true 時,會輸出 session 等敏感資訊。

以上兩個包預設都在 composer.jsonrequire-dev 分支裡面,生產環境不安裝這兩個包,就算 APP_DEBUG 配置成 true,也不會洩露太多敏感的資訊。

所以,生產環境部署系統時,一定要加 --no-dev

composer install --no-dev -vvv

原因2. 網站根目錄路徑配置錯誤

這個不用多說,有些害人的新手教程裡面,讓大家把網站根目錄配置成 public 目錄的上級目錄,使得別人可以直接訪問 .env 檔案。

切記:不要讓別人能直接訪問到 .env 檔案。

原創。 所有 Laravel 文章均已收錄至 Github laravel-tips 專案。

相關文章