近日某標題黨“白帽子”團隊號稱 “Laravel 出現 XXX 高危漏洞”,還像模像樣給了幾個解決方法...有點搞笑...
其實 Laravel 洩露 env 配置資訊的原因主要有2個:
原因1. 生產環境 composer install 時沒有加 --no-dev
- Laravel 預設依賴的
filp/whoops
包 ,當.env
檔案中配置APP_DEBUG=true
時,會在出錯頁面列印.env
配置資訊。 - Laravel 常用的
barryvdh/laravel-debugbar
包,當.env
檔案中配置APP_DEBUG=true
時,會輸出session
等敏感資訊。
以上兩個包預設都在 composer.json
的 require-dev
分支裡面,生產環境不安裝這兩個包,就算 APP_DEBUG
配置成 true
,也不會洩露太多敏感的資訊。
所以,生產環境部署系統時,一定要加 --no-dev
:
composer install --no-dev -vvv
原因2. 網站根目錄路徑配置錯誤
這個不用多說,有些害人的新手教程裡面,讓大家把網站根目錄配置成 public
目錄的上級目錄,使得別人可以直接訪問 .env
檔案。
切記:不要讓別人能直接訪問到 .env
檔案。
原創。 所有 Laravel 文章均已收錄至 Github laravel-tips 專案。