2017-09-25 85 views
14

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

有时候其他人在看我的开发工作。如果抛出异常,我不希望他们看到这些秘密,但是我也不希望不断地打开和关闭调试,或者启动一个专门的站点来快速预览。

whoops output screenshot with passwords shown

回答

30

由于Laravel 5.5.13的,还有a new feature,让您在列入黑名单的关键debug_blacklistconfig/app.php某些变量。当抛出异常时,whoops将为每个字符使用星号*掩盖这些值。

例如,给定此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

+0

它可能是有用的,使拉请求laravel文档 – Christophvh

+0

这不适用于我的laravel 5.5.4 – eiipaw

+0

@Cgdl这是正确的。它可以从5.5.13 –

11

首先,爱由上述杰夫该溶液中。

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

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

输出:

enter image description here

+1

感谢你。我仍然困惑为什么人们会希望所有的env变量都在屏幕上打印出来,并且出现错误。 – warmwhisky

+0

究竟是男人..可能会说10%会想要它..但不是90%的laravel开发者! –

+2

听到!几个月前我无意中暴露了我的mailgun API密钥,导致我的帐户中有超过1200封钓鱼邮件。可怕!如果我需要看看我的环境中有什么,我可以通过打开该死的东西来实现老派的方式! – warmwhisky