Skip to content

Always redact Authorization headers before sending to Sentry #4163

@jamescrosswell

Description

@jamescrosswell

Sentry Replay currently redacts the Authorization header to avoid private information leaks. Instead, SDK users see something like this in their Sentry portal:

Image

Ideally we'd also redact this in the SDK before it crosses process boundaries though.

The FailedRequest handler and HttpContextExtensions currently capture all headers when SendDefaultPii is true:

if (!Options.SendDefaultPii)
{
sentryRequest.Url = uri?.HttpRequestUrl();
}
else
{
sentryRequest.Url = uri?.AbsoluteUri;
sentryRequest.Cookies = request.Headers.GetCookies();
sentryRequest.AddHeaders(request.Headers);
responseContext.Cookies = response.Headers.GetCookies();
responseContext.AddHeaders(response.Headers);
}

ScopeExtensions excludes this rather than redacting it:

if (!options.SendDefaultPii
// Don't add headers which might contain PII
&& (requestHeader.Key == HeaderNames.Cookie
|| requestHeader.Key == HeaderNames.Authorization))
{
continue;
}
scope.Request.Headers[requestHeader.Key] = requestHeader.Value!;
if (requestHeader.Key == HeaderNames.Cookie)
{
scope.Request.Cookies = requestHeader.Value;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions