Как спрятаться.пароли env в выводе Laravel whoops?
Как я могу скрыть мои пароли и другие конфиденциальные переменных на экране в выходной фреймворк Laravel по упс?
иногда другие люди смотрят на мою работу по развитию. Я не хочу, чтобы они видели эти секреты, если возникает исключение, но я также не хочу продолжать переключать отладку и выключать или разворачивать выделенный сайт только для быстрого просмотра.
4 ответов
по состоянию на Laravel 5.5.13, есть новая функция это позволяет вам занести в черный список определенные переменные в config/app.php
под ключ debug_blacklist
. Когда возникает исключение, 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',
],
],
];
результаты в этом выводе:
прежде всего, люблю решение Джеффа выше.
2nd, если, как я, вы хотите скрыть все env variables
пока все еще используйте whoops, вот решение:
'debug_blacklist' => [
'_COOKIE' => array_keys($_COOKIE),
'_SERVER' => array_keys($_SERVER),
'_ENV' => array_keys($_ENV),
],
выход:
спасибо Джеффу и Рахилу за помощь, но я только что нашел немного gotcha:
даже если я очищу все ключи среды от _ENV
, те же ключи по-прежнему отображаются через _SERVER
переменные.
добавление кода ниже в config/app.php
скроет все переменные среды со страницы whoops:
'debug_blacklist' => [
'_SERVER' => array_keys($_ENV),
'_ENV' => array_keys($_ENV),
],
фреймворк Laravel 5.6 не работает для меня. но это работает:
$envKeys = [];
$serverKeys = [];
$cookieKeys = [];
foreach ( $_ENV as $key => $value ) { if(is_string($value)) $envKeys[] = $key; }
foreach ( $_SERVER as $key => $value ) { if(is_string($value)) $serverKeys[] = $key; }
foreach ( $_COOKIE as $key => $value ) { if(is_string($value)) $cookieKeys[] = $key; }
return [
// ...
'debug_blacklist' => [
'_COOKIE' => $cookieKeys,
'_SERVER' => $serverKeys,
'_ENV' => $envKeys,
],
];
Я был бы благодарен за лучшее решение.