Laravel 泄露 env 配置信息的 2 个原因:whoops 包, 根目录指向错误(回应某白帽子团队)

近日某标题党“白帽子”团队号称 “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 文件。

本作品采用《CC 协议》,转载必须注明作者和本文链接
原创。 所有 Laravel 文章均已收录至 Github laravel-tips 项目。
Ίκαρος
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!