Removendo dados sensíveis enviados em requests do guzzle

production
parent 948f15adf3
commit da1c6c196d

@ -43,13 +43,36 @@ class LogCaptureObserver
{
$logDataContainer = app(LogDataContainer::class);
$requestBody = $event->request->getBody()->getContents();
$logDataContainer->addCapturedHttpClientEvent([
'request' => [
'method' => $event->request->getMethod(),
'uri' => $event->request->getUri(),
'headers' => $event->request->getHeaders(),
'body' =>self::hideSensitiveData($requestBody)
],
'options' => $event->options,
]);
}
/**
* @param $content
* @return false|string
*/
private static function hideSensitiveData($content)
{
$data = json_decode($content, true);
// Define an array of field names that contain sensitive information
$sensitiveFields = explode(',', config('laravel-logs-layer.sensitive_data'));
foreach ($sensitiveFields as $field) {
if (isset($data[$field])) {
$data[$field] = '*****';
}
}
return json_encode($data);
}
}

@ -5,9 +5,9 @@
|--------------------------------------------------------------------------
|
| Execute the command below do publish the config file
| php artisan vendor:publish --provider="Ae3\LogsLayer\app\Providers\LogsLayerServiceProvider" --tag="config"
| php artisan vendor:publish --provider="Ae3\LaravelLogsLayer\app\Providers\LogsLayerServiceProvider" --tag="config"
*/
return [
'sensitive_data' => env('LOGS_LAYER_SENSITIVE_DATA', 'password,password_confirmation,token,api_token,api_key,access_token'),
];

Loading…
Cancel
Save