我最近切换到基于环境的 Laravel 应用程序部署,并决定使用 $_ENV 将本地和生产服务器的凭据存储在 .env 文件中,但是我发现打开调试时会抛出异常显示公开数据库凭据的环境变量。
现在我确信调试将始终在生产中关闭,因为这是我的默认设置,然后我在本地环境的本地文件夹中覆盖它,但是,什么if不知何故,调试在生产中打开,并且用户强制出现 404 异常,他们所需要做的就是向下阅读页面,直到他们在普通视图中看到公开凭据的环境变量。在文档中,它表示任何“真实”应用程序的最佳实践都是使数据库凭据远离实际配置。我在这里可能有点偏执。
有没有办法可以限制 laravel 显示的调试屏幕中显示的内容?
我最近遇到了同样的问题,而我正在从事的一个项目要求我暂时向邪恶的外部世界开放我的开发机器来测试一些 API 回调。
在此,我在任何时候都暴露了我所有珍贵的密钥和密码whoops
被触发。即使它是一个盲目的 API 回调机器,他们也有可能记录对其请求的响应,并且一些工程师会筛选它们并找到一些 AWS 密钥,不,谢谢。
这就是我现在正在使用的:
App::error(function (Exception $exception, $code)
{
// Never, ever, use environment variables in responses, not even when debugging
$_SERVER = array_except($_SERVER, array_keys($_ENV));
$_ENV = [];
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)