编辑日志内容
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);
}
在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);
}