如何从c#中的异常消息中删除敏感信息

时间:2015-09-28 15:06:04

标签: c# jwt

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

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

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

  

System.IdentityModel.Tokens.SecurityTokenValidationException:   Jwt10315:签名验证失败。钥匙尝试:   ' System.IdentityModel.Tokens.X509AsymmetricSecurityKey   System.IdentityModel.Tokens.X509AsymmetricSecurityKey   System.IdentityModel.Tokens.X509AsymmetricSecurityKey'

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

我还有其他办法吗?

2 个答案:

答案 0 :(得分:3)

  

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

解析异常消息可能无关紧要,因为您将不得不处理不同的信息和消息类型。相反,我只需记录原始异常消息并抛出一个自定义异常,大致描述发生了什么:

try
{
    RunSensitiveMethod();
}
catch (SecurityTokenValidationException e)
{
    // Perhaps something fancier if needed.
    logger.Log(e);
    throw new MyCustomException("We screwed up!");
}

答案 1 :(得分:2)

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

相关问题