2017-09-25 2 views
14

Comment cacher mes mots de passe et autres variables d'environnement sensibles à l'écran dans la sortie de Laravel?Comment masquer les mots de passe .env dans la sortie de Laravel whoops?

Parfois, d'autres personnes observent mon travail de développement. Je ne veux pas qu'ils voient ces secrets si une exception est levée, mais je ne veux pas non plus devoir continuer à activer et désactiver le débogage, ou créer un site dédié juste pour un aperçu rapide.

whoops output screenshot with passwords shown

Répondre

30

Au Laravel 5.5.13, il y a a new feature qui vous permet de liste noire certaines variables dans config/app.php sous la debug_blacklist clé. Lorsqu'une exception est levée, whoops masquera ces valeurs avec des astérisques * pour chaque caractère.

Par exemple, étant donné cette 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', 
     ], 
    ], 
]; 

résultats dans cette sortie:

whoops exception page

+0

il pourrait être utile de faire une traction demande pour les documents laravel – Christophvh

+0

Cela ne fonctionne pas sur mon laravel 5.5.4 – eiipaw

+0

@Cgdl c'est correct. Il est disponible à partir de 5.5.13 –

11

Tout d'abord, l'amour de la solution par Jeff ci-dessus.

2ème, si comme moi vous voulez cacher tous les env variables en utilisent encore whoops, voici une solution:

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

Sortie:

enter image description here

+1

Merci pour cela. Je suis toujours confus pourquoi les gens voudraient toutes les variables d'env imprimées sur l'écran avec chaque erreur. – warmwhisky

+0

exactement homme .. peut-être dire que 10% le voudraient .. mais PAS 90% des développeurs de Laravel! –

+2

Hear hear! J'ai accidentellement exposé ma clé api mailgun il y a quelques mois, ce qui a entraîné plus de 1200 courriels d'hameçonnage à travers mon compte. Horrible! Si jamais j'ai besoin de voir ce qui est dans mon env je le fais à la manière oldschool en ouvrant la putain de chose! – warmwhisky