在Audit.Net中,是否可以过滤保存的包含敏感数据的请求正文?这是用于Audit.WebAPI。
例如,有一个带有{"username": "me", "password": "sensitive"}
的JSON请求正文。可以将密码值“敏感”替换为“”吗?
答案 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);
}