编辑日志内容

Redacting Log Content

在Audit.Net中,是否可以过滤正在保存的包含敏感数据的请求正文?这是 Audit.WebAPI.

例如,有一个 JSON 请求正文 {"username": "me", "password": "sensitive"}。密码值"sensitive"可以用“”代替吗?

您可以添加一个自定义操作来清理审核事件的正文字符串。

例如:

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);
}