当您将调试设置为 false 时,如何在 Lumen 中隐藏 .env 密码?

How to hide .env passwords in Lumen when you leave debug as false?

如何在 Lumen 的屏幕上隐藏我的密码和其他敏感环境变量(不是 Laravel)?

有时我们要么忘记要么在开发中测试smth并在.env文件中设置debug=false。即使在开发阶段,我们可能也不希望其他人看到此类信息。

还有一些不知道这一点的人,如果在打开页面或发出请求时抛出异常,.env 文件中的所有内容都会显示在浏览器中,包括数据库密码等 - "and this is how you debug"!

我找到了 Laravel 的解决方案,但我也需要 Lumen 的解决方案!

Laravel 的解决方案:

如果 Laravel 团队将此设置为默认设置会更好,但在 Laracast 中进行了一些讨论后我不太乐观!

我希望开发人员知道这个问题并且非常非常小心,因为忘记它或者甚至在开发中测试它都有被黑客攻击的巨大风险!

谢谢!

您可以在 ÈxceptionHandler class 中完全自定义调试输出。

由您决定,您希望如何将异常转换为 json 响应

2 个选项:

  1. 不要安装开发依赖项:composer install --no-dev
  2. 使用专业的MVC框架

您可以通过在config/app中添加以下代码来隐藏敏感信息。php

'debug_blacklist' => [
    '_ENV' => [
        'APP_KEY',
        'DB_PASSWORD',
    ],
    '_SERVER' => [
        'APP_KEY',
        'DB_PASSWORD',
    ],
    '_POST' => [
        'password',
    ],
],