我正在构建一个 C# 应用程序 (WPF),它将日志文件上传到 azure blob 存储。我将 StorageConnectionString
存储在 App.config
文件中,如下所示:
<appSettings>
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<my account name>;AccountKey=<my account key>;EndpointSuffix=core.windows.net" />
</appSettings>
在我的代码中,我检索 StorageConnectionString
,如下所示:
string connectionString = ConfigurationManager.AppSettings.Get("StorageConnectionString");
到目前为止,一切正常,但我担心 App.config
文件中的清晰可见 StorageConnectionString
。
如何确保我的应用程序无法通过逆向工程获取 StorageConnectionString
?
最佳答案
您的应用程序不应使用共享 key 。存储帐户 key 授予对存储帐户的完全访问权限。更好的方法是在应用程序中通过 Azure AD 使用共享访问签名。
完整概述可在此处找到:
https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview
虽然 Microsoft 建议使用 Azure AD 和 SAS 来授权对 Azure 存储的请求。如果必须使用共享 key 授权,请使用 Azure Key Vault 保护您的帐户 key 。您可以在运行时从 key 保管库检索 key ,而不是将它们保存在应用程序中。有关 Azure Key Vault 的详细信息,请参阅 Azure Key Vault overview .
我们所有的安全建议都可以在这里找到:
https://learn.microsoft.com/en-us/azure/storage/blobs/security-recommendations
关于c# - 在 C# 应用程序中安全存储 Azure Blob 存储访问 key 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70891836/