-
Notifications
You must be signed in to change notification settings - Fork 17
Description
In production environments, it’s important to avoid logging sensitive data such as API keys or authorization tokens.
I’d like to suggest adding a feature that allows masking specific headers when generating CURL logs.
Example use case
When logging HTTP requests using HttpClientToCurl, certain headers (like x-api-key, Authorization, etc.) should be masked to prevent sensitive information from being exposed in the logs.
Proposed solution:
Add an optional configuration or parameter to specify which headers should be masked.
For example, add MaskedHeaders to console config :
httpRequestMessageInstance.GenerateCurlInConsole(
new Uri("http://localhost:1213/v1/api/test"),
config =>
{
config.TurnOn = true;
config.NeedAddDefaultHeaders = true;
config.EnableCodeBeautification = false;
config.MaskedHeaders = new Dictionary<string, Func<string, string>>
{
// mask all chars except first 3
["Authorization"] = value => value.Length > 3
? value.Substring(0, 3) + new string('*', value.Length - 3)
: "***"
};
} );
✅ Output:
curl -X POST 'http://localhost:1213/v1/api/test' -H 'Authorization: ***'
-H 'Content-Type: application/json; charset=utf-8' -d '{"name":"sara","requestId":10001001,"amount":20000}'Benefits
-
Prevents accidental exposure of secrets in production logs
-
Gives developers control over which headers are masked
-
Improves security without affecting debugging in non-production environments