当您将调试设置为 false 时,如何在 Lumen 中隐藏 .env 密码?
Posted
技术标签:
【中文标题】当您将调试设置为 false 时,如何在 Lumen 中隐藏 .env 密码?【英文标题】:How to hide .env passwords in Lumen when you leave debug as false? 【发布时间】:2018-12-15 17:32:24 【问题描述】:如何在 Lumen(不是 Laravel)的屏幕上隐藏我的密码和其他敏感环境变量?
有时我们在开发中忘记或测试 smth 并在 .env 文件中设置 debug=false。即使在开发阶段,我们也可能不希望其他人看到这些信息。
对于一些不知道这一点的人来说,如果在打开页面或发出请求时抛出异常,.env 文件中的所有内容都会显示在浏览器中,包括 db 密码等 - “而这个就是你调试的方式”!
我找到了 Laravel 的解决方案,但 Lumen 也需要它!
Laravel 解决方案:How to hide .env passwords in Laravel whoops output?
如果我们将这个作为 Laravel 团队的默认设置提供,那将是最好的,但在 Laracast 中进行了一些讨论后,我不太乐观!
我希望开发人员知道这个问题并非常小心,因为忘记它甚至在开发中测试它都有被黑客入侵的巨大风险!
谢谢!
【问题讨论】:
【参考方案1】:您可以通过在config/app.php中添加以下代码来隐藏敏感信息
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
],
'_SERVER' => [
'APP_KEY',
'DB_PASSWORD',
],
'_POST' => [
'password',
],
],
【讨论】:
【参考方案2】:2 个选项:
-
不要安装开发依赖:
composer install --no-dev
使用专业的 MVC 框架
【讨论】:
【参考方案3】:您可以在ÈxceptionHandler
类中完全自定义调试输出。
这取决于您,您希望如何将异常转换为 json 响应
【讨论】:
我厌倦了一直听到“这取决于你”!那为什么要有框架呢?当 smth 成为标准时,它需要作为默认值提供!没有?以上是关于当您将调试设置为 false 时,如何在 Lumen 中隐藏 .env 密码?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个 div,它默认显示图片,但当您将鼠标悬停在它上面时会转换为一些文本细节?