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 项目。
关于 LearnKu
推荐文章: