如何从c#中的异常消息中剥离敏感信息

问题描述 投票:0回答:2

目前在我们的日志记录中,我们记录如下异常消息:

string.Format(
    "caught exception while validating token, error detail:{0}", this.exception.ToString())

异常消息中有一些敏感信息(jwt):

System.IdentityModel.Tokens.SecurityTokenValidationException: Jwt10315:签名验证失败。尝试过的按键: 'System.IdentityModel.Tokens.X509AmetrySecurityKey System.IdentityModel.Tokens.X509AmetrySecurityKey System.IdentityModel.Tokens.X509AmetrySecurityKey'

我正在考虑解析异常消息字符串,删除敏感信息,然后记录它。使用此剥离的数据创建一个新的异常对象,然后将其传递给其他 API

还有其他方法可以做到吗?

c# jwt
2个回答
3
投票

我正在考虑解析异常消息字符串,删除 敏感信息然后记录下来。

正确解析异常消息可能并非易事,因为您必须处理不同的信息和消息类型。相反,我会简单地记录原始异常消息并抛出一个自定义异常,该异常大致描述了发生的情况:

try
{
    RunSensitiveMethod();
}
catch (SecurityTokenValidationException e)
{
    throw new MyCustomException("We screwed up!");
}

2
投票

捕获 SecurityTokenValidationException 上的异常,然后抛出您自己类型的新自定义异常,该异常仅包含您想要的信息。 您仍然可以记录它,并且您将确切地知道它的含义。

© www.soinside.com 2019 - 2024. All rights reserved.