Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多平台数据保护_C#_Asp.net Core_.net Core - Fatal编程技术网

C# 多平台数据保护

C# 多平台数据保护,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,问题:在开发多平台.NET Core 1.1应用程序时,保护数据安全的最佳方法是什么 让我解释一下我的意思:应用程序有一个包含数据库连接密码的配置文件 我希望以正确的方式进行操作,这意味着在第一次读取密码后,我更愿意加密配置文件中的字符串。显然,我需要使用某种对称加密和某种密码短语。对于Windows,我将使用DPAPI和主机标识生成我的密码短语(当然,在对其进行了一点模糊处理之后) Linux没有DPAPI。。。是否有一种真正的多平台方式来实现我所描述的 提前谢谢 编辑:最好实现代码库相同,而

问题:在开发多平台.NET Core 1.1应用程序时,保护数据安全的最佳方法是什么

让我解释一下我的意思:应用程序有一个包含数据库连接密码的配置文件

我希望以正确的方式进行操作,这意味着在第一次读取密码后,我更愿意加密配置文件中的字符串。显然,我需要使用某种对称加密和某种密码短语。对于Windows,我将使用DPAPI和主机标识生成我的密码短语(当然,在对其进行了一点模糊处理之后)

Linux没有DPAPI。。。是否有一种真正的多平台方式来实现我所描述的

提前谢谢

编辑:最好实现代码库相同,而不依赖于环境/主机操作系统

  • 应在配置文件中加密所有敏感设置
  • 解密密钥应存储在环境变量中

  • 然后,应用程序应该在需要时动态解密这些设置。

    我不认为有一种“真正的多平台”方法可以从单个实现在每个平台上调用本机操作系统级加密原语。我相信许多供应商必须根据具体情况针对操作系统的API

    这可能是一个很好的证据,可以证明围绕“以艰难的方式”工作并针对每一个平台,可能说明了试图找到捷径所涉及的风险:

    所有工具都必须使用操作系统(OS)提供的加密原语,其中 可用(例如,Microsoft CryptoAPI NG、OpenSSL、PolarSSL、GnuTLS等)


    我喜欢环境变量方法。我是否需要一组代码来处理Linux和Windows的.net核心应用程序中的环境变量?@PhilP。GetEnvironmentVariable()方法应该可以工作。您好,您能否提供有关此解决方案的更多信息,包括将键存储为环境变量?我了解应用程序将如何使用环境变量,但谁和何时安全地设置了此环境变量?谢谢嗨,马吕斯。这应该是部署过程的一部分。在Azure应用程序服务部署的情况下,您可以使用ARM模板来实现这一点。以下是一篇关于它的博文: