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 项目。
Ίκαρος
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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