编辑日志内容

时间:2019-10-28 23:43:08

标签: audit.net

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

例如,有一个带有{"username": "me", "password": "sensitive"}的JSON请求正文。可以将密码值“敏感”替换为“”吗?

1 个答案:

答案 0 :(得分:0)

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

例如:

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