• 加密Web.config 文件中的敏感信息


    为了提高应用程序的安全性,可以使用aspnet_regiis.exe对web.config文件中的节进行加密,并管理加密密钥.ASP.NET 在处理文件时对配置文件进行解密。
    确保计算机上已经安装了IIS,并且建立的ASP.NEt网站.
    (1)授予应用程序对 RSA 加密密钥的读取权限.因为ASP.NET 应用程序必须能读取用于加密的密钥,才能对 Web.config 文件中的已加密信息进行解密。Machine.config 文件中缺省指定了一个 提供程序, .. name="RsaProtectedConfigurationProvider" keyContainerName="NetFrameworkConfigurationKey" ..,即默认 RsaProtectedConfigurationProvider 提供程序使用的 RSA 密钥容器名为 "NetFrameworkConfigurationKey"。
    下面取得ASP.NET应用程序的标识,打开文本编辑器,然后将下面的代码复制到一个新文件getId.aspx中。在浏览器中查看,浏览器中将显示 ASP.NET 应用程序的模拟标识
    <%@ Page Language="C#" %>
    <%
    Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
    %>
    命令行下输入c:\>aspnet_regiis -pa "NetFrameworkConfigurationKey" "ZGW\ASPNET",这个命令授予ZGW\ASPNET 帐户对计算机级别的 "NetFrameworkConfigurationKey" RSA 密钥容器的访问权限。(相反的移除命令使用-pr参数)
    (2) -pe选项进行加密
    aspnet_regiis -pe "connectionStrings" -app "/MyApplication" 对connectionStrings节进行加密
    aspnet_regiis -pd "appSettings" -app "/MyApplication"对appSettings节加密
    ..
    (3)解密时使用-pd选项.
    (4)查看已解密的配置值
    打开文本编辑器,然后将下面的 ASP.NET 代码复制到一个新文件中。
     1<%@ Page Language="C#" %>
     2<%@ Import Namespace="System.Configuration" %>
     3<%@ Import Namespace="System.Web.Configuration" %>
     4<script runat="server">
     5
     6public void Page_Load()
     7{
     8  ConnectionStringsGrid.DataSource = ConfigurationManager.ConnectionStrings;
     9  ConnectionStringsGrid.DataBind();
    10
    11  Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
    12  MachineKeySection key = 
    13    (MachineKeySection)config.GetSection("system.web/machineKey");
    14  DecryptionKey.Text = key.DecryptionKey;
    15  ValidationKey.Text = key.ValidationKey;
    16}

    17
    18</script>
    19<html>
    20
    21<body>
    22
    23<form runat="server">
    24
    25  <asp:GridView runat="server" CellPadding="4" id="ConnectionStringsGrid" />
    26  <P>
    27  MachineKey.DecryptionKey = <asp:Label runat="Server" id="DecryptionKey" /><BR>
    28  MachineKey.ValidationKey = <asp:Label runat="Server" id="ValidationKey" />
    29
    30</form>
    31
    32</body>
    33</html>

    将看到加密的 Web.config 文件中已解密的值

  • 相关阅读:
    批量修改数据后应收集统计信息
    this,this,再次讨论javascript中的this,超全面
    javascript中的闭包,超简单论述,保证小学生必懂
    有四中方法可以实现PHP的伪静态,你造吗?
    javascript 事件传播与事件冒泡,W3C事件模型
    浅谈asp.net性能
    div浮动层 兼容IE FF
    我们这些程序员
    c++学习笔记_1
    windows下hexo+github搭建个人博客
  • 原文地址:https://www.cnblogs.com/macro/p/693470.html
Copyright © 2020-2023  润新知