Редактирование содержимого журнала - PullRequest
1 голос
/ 29 октября 2019

В Audit.Net возможно ли отфильтровывать сохраняемые тела запросов, содержащие конфиденциальные данные? Это для Audit.WebAPI.

Например, есть тело запроса JSON с {"username": "me", "password": "sensitive"}. Можно ли заменить значение пароля «чувствительный» на «»?

1 Ответ

0 голосов
/ 29 октября 2019

Вы можете добавить настраиваемое действие, которое очищает строку тела в событии аудита.

Например:

using Audit.WebApi;

Audit.Core.Configuration.AddCustomAction(ActionType.OnScopeCreated, scope =>
{
    var action = scope.GetWebApiAuditAction();
    var bodyString = action?.RequestBody?.Value?.ToString();
    if (!string.IsNullOrEmpty(bodyString))
    {
        action.RequestBody.Value = Sanitize(bodyString);
    }
});

Использование регулярного выражения:

private string Sanitize(string input)
{
    var pattern = @"\s*\""password\"" *: *\"".*\""(,|(?=\s+\}))";
    var substitution = @"""password"": """"";
    var regex = new Regex(pattern);
    return regex.Replace(input, substitution);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...