如何在Laravel whoops输出中隐藏.env密码?

如何在Laravel的whoope输出中隐藏我的密码和其他敏感环境变量?

有时其他人正在查看我的开发工作。如果抛出异常,我不希望他们看到这些秘密,但我也不想继续打开和关闭调试,或者启动一个专用站点只是为了快速预览。

whoops output screenshot with passwords shown


答案 1

Laravel 5.5.13 开始,您可以通过在 中的键下列出变量来审查变量。当引发异常时,whoops 将用每个字符的星号来屏蔽这些值。debug_blacklistconfig/app.php*

例如,给定config/app.php

return [

    // ...

    'debug_blacklist' => [
        '_ENV' => [
            'APP_KEY',
            'DB_PASSWORD',
            'REDIS_PASSWORD',
            'MAIL_PASSWORD',
            'PUSHER_APP_KEY',
            'PUSHER_APP_SECRET',
        ],
        '_SERVER' => [
            'APP_KEY',
            'DB_PASSWORD',
            'REDIS_PASSWORD',
            'MAIL_PASSWORD',
            'PUSHER_APP_KEY',
            'PUSHER_APP_SECRET',
        ],
        '_POST' => [
            'password',
        ],
    ],
];

此输出中的结果:

whoops exception page


答案 2

首先,喜欢上面杰夫的解决方案。

2nd,如果像我一样,你想隐藏一直,同时仍然使用whoops,这里有一个解决方案:env variables

'debug_blacklist' => [
        '_COOKIE' => array_keys($_COOKIE),
        '_SERVER' => array_keys($_SERVER),
        '_ENV' => array_keys($_ENV),        
    ],

输出:

enter image description here

编辑:传说既然是7x,你就需要钥匙了debug_hide


推荐