Removendo dados sensíveis enviados em requests do guzzle

production
parent 948f15adf3
commit da1c6c196d

@ -43,13 +43,36 @@ class LogCaptureObserver
{ {
$logDataContainer = app(LogDataContainer::class); $logDataContainer = app(LogDataContainer::class);
$requestBody = $event->request->getBody()->getContents();
$logDataContainer->addCapturedHttpClientEvent([ $logDataContainer->addCapturedHttpClientEvent([
'request' => [ 'request' => [
'method' => $event->request->getMethod(), 'method' => $event->request->getMethod(),
'uri' => $event->request->getUri(), 'uri' => $event->request->getUri(),
'headers' => $event->request->getHeaders(), 'headers' => $event->request->getHeaders(),
'body' =>self::hideSensitiveData($requestBody)
], ],
'options' => $event->options, '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 | 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 [ return [
'sensitive_data' => env('LOGS_LAYER_SENSITIVE_DATA', 'password,password_confirmation,token,api_token,api_key,access_token'),
]; ];

Loading…
Cancel
Save