我目前面临一个问题,即一些敏感数据(api 密钥、密码、PII 等)作为跟踪通过遥测从 ASP.NET Core API 发送到 Azure Application Insights,并且以明文形式显示。这是一个例子(红线是我在说的):
我对 Azure 还很陌生,所以我不确定最好的方法是什么。
我目前的做法是使用 Initializer 来“拦截”每个遥测数据并在将其发送到 Azure 之前对其进行混淆。
由于我在 Application Insights 中发现的每一次敏感数据都遵循
"property": "value"
或 property: value
或 property=value
的格式,我可以使用正则表达式来捕获和混淆它。例如以下内容:
X-API-Key: abcdef0123456789
{
"username": "MyUsername",
"password": "qwerty1234"
}
会变成:
X-API-Key: [obfuscated]
{
"username": "[obfuscated]",
"password": "[obfuscated]"
}
这适用于我在初步审核后确定的几个关键字(用户名、密码、地址、电话等)这就是我现在所处的位置。
但是随之而来的是另一个问题:出于调试目的,我们可能想知道初始混淆值是什么。例如,调用可能会因为客户端使用无效的 API 密钥而失败,因此我们需要能够以某种方式查看该 API 密钥以确定这是问题的原因。
所以我想我可以加密数据,而不是像上面那样混淆它。但是在我们需要的时候解密数据呢?我们是否需要在复制粘贴值以解密的那一边有一个解密工具?这听起来很麻烦。
所以我的问题是:
提前致谢