Laravel 泄露 env 配置信息的 2 个原因:whoops 包, 根目录指向错误(回应某白帽子团队)
近日某标题党“白帽子”团队号称 “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
文件。
本作品采用《CC 协议》,转载必须注明作者和本文链接
原创。 所有 Laravel 文章均已收录至 Github laravel-tips 项目。