zoukankan      html  css  js  c++  java
  • .NET Core环境变量和用户秘钥实现开发中的数据安全


    前言:有很多人将秘钥,数据库连接字符串写到项目配置文件中,并提交到源代码控制或者共享源代码控制,并在那里使用,这使得项目出现了很大的风险。

    首先新建一个 ASP.NET Core 的 MVC 项目,就可以直接进行测试。

    一、注入 IConfiguration

    首先将注入 IConfiguration 并命名为 Configuration。

    在配置文件中并未设置 Keycomputername 的属性,

    但是可以根据 @Configuration["computername"] 来获取当前的PC的名称。

    因为每台 Windows 电脑都会创建一个名为 computername 的环境变量。

    将 Index.cshtml 修改为入下图所示。
    在这里插入图片描述

    在运行网站后得到的结果如下所示:
    在这里插入图片描述

    二、从配置文件 appsettings.json 中获取环境变量

    在配置文件中加入图下红框中的代码。
    在这里插入图片描述

    将 Index.cshtml 修改为入下图所示。
    在这里插入图片描述

    在运行网站后得到的结果如下所示:
    在这里插入图片描述

    三、从项目中获取环境变量

    在解决方案目录中选中当前 ASP.NET Core Web 项目

    按下 Alt + Enter 打开项目属性面板
    或者 右键点击项目 =》 选择 属性

    随后选择调试(Debug)会有看到当前项目的环境变量了
    在这里插入图片描述

    随后在环境变量里面添加 先前在 appsetting.json 中添加的值
    在这里插入图片描述

    并且更改掉 appsetting.json 中的 Wechat 的值
    在这里插入图片描述

    在运行网站后得到的结果如下所示:
    在这里插入图片描述

    随后我们得出结论: appsettings.json 优先级小于 项目的环境变量

    四、用户秘钥设置环境变量

    我们首先删除掉 项目环境变量中的之前添加的Wechat,环境变量编程如下所示。
    在这里插入图片描述

    随后右键选中项目选择 管理用户机密(Manage User Secrets)。

    在这里插入图片描述

    这时打开一个 secrets.json 的新文件,移动鼠标可以看到它的路径。
    在这里插入图片描述

    当前文件不是一个加密的文件,并且它不是一个在源代码控制的文件。

    随后在文件 secrets.js 加入代码如下所示, appsettings.json 文件的Wechat 应如下所示,
    项目的环境变量的 Wechat 的值已经被删掉。
    在这里插入图片描述

    在运行网站后得到的结果如下所示:
    在这里插入图片描述

    随后我们得出结论: secrets.json 优先级大于 appsettings.json

    由于 secrets.json 并不会提交到源代码控制中,保证了用于开发目的的数据更加安全。

  • 相关阅读:
    有趣的话
    Ubuntu Sublime Text 3 搜狗拼音
    linux下查看文件编码及修改编码
    解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题
    linux下 为自己编写的程序 添加tab自动补全 功能
    SSH免密码登录
    ubuntu14.04 无法ping通 mirrors6.ustc.edu.cn
    解决 ubuntu14.04下的gedit中文乱码
    资源记录
    【重新学习C语言】起步篇
  • 原文地址:https://www.cnblogs.com/MaleDeer/p/10797512.html
Copyright © 2011-2022 走看看