• ASP.NET 2.0加密Web.config 配置文件


    可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码、数据库连接字符串和加密密钥)。对配置信息进行加密后,即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。

    针对asp.net 2.0的应用程序的数据库链接字符串进行加密:例如,未加密的配置文件中可能包含一个指定用于连接到数据库的连接字符串的节,如下面的示例所示:

    <configuration>

      <connectionStrings>
        <add name="SampleSqlServer" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" />
       </connectionStrings>
    </configuration>
    ASP.NET 2.0 中有一个新的安全特性.可以对 Web.config 文件中的任何配置节进行加密处理,可以通过手工运行工具aspnet_regiis或者编程来完成这个工作。如果你可以直接访问你的Web 服务器,你可以通过运行如下的命令行:

     cd  %windows%\Microsoft.NET\Framework\versionNumber

    aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" –prov RsaProtectedConfigurationProvider

    -pd section
     对配置节进行解密。此参数采用下面的可选参数:

    ·         -app virtualPath   指定应该在包含路径的级别进行解密。

    ·         -location subPath   指定要解密的子目录。

    ·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行解密。
     
    -pdf section webApplicationDirectory
     对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。
     
    -pe section
     对指定的配置节进行加密。此参数采用下面的可选修饰符:

    ·         -prov provider   指定要使用的加密提供程序。

    ·         -app virtualPath    指定应该在包含路径的级别进行加密。

    ·         -location subPath   指定要加密的子目录。

    ·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行加密。
     
    -pef section webApplicationDirectory
     对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。
     

    如果你是使用虚拟主机等不能访问物理的服务器,你仍然能够通过编程方式加密的连接字符串:

    1 Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
    2 ConfigurationSection section = config.Sections["connectionStrings"];
    3 section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");;
    4 config.Update ();
    现在, 使用受保护配置对连接字符串值进行加密的配置文件不以明文形式显示连接字符串,而是以加密形式存储它们,如下面的示例所示:

    <configuration>
     
      <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
        <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
          xmlns="http://www.w3.org/2001/04/xmlenc#">
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
              <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyName>RSA Key</KeyName>
              </KeyInfo>
              <CipherData>
                <CipherValue>RXO/zmmy3sR0iOJoF4ooxkFxwelVYpT0riwP2mYpR3FU+r6BPfvsqb384pohivkyNY7Dm4lPgR2bE9F7k6TblLVJFvnQu7p7d/yjnhzgHwWKMqb0M0t0Y8DOwogkDDXFxs1UxIhtknc+2a7UGtGh6D
    i3N572qxdfmGfQc7ZbwNE=
                </CipherValue>
              </CipherData>
            </EncryptedKey>
          </KeyInfo>
          <CipherData>
            <CipherValue>KMNKBuV9nOid8pUvdNLY5I8R7BaEGncjkwYgshW8ClKjrXSM7zeIRmAy/cTaniu8Rfk92KVkEK83+UlQd+GQ6pycO3eM8DTM5kCyLcEiJa5XUAQv4KITBNBN6fBXsWrGuEyUDWZYm6Eijl8DqRDb
    11i+StkBLlHPyyhbnCAsXdz5CaqVuG0obEy2xmnGQ6G3Mzr74j4ifxnyvRq7levA2sBR4lhE5M80Cd5yKEJktcPWZYM99TmyO3KYjtmRW/Ws/XO3z9z1b1KohE5Ok/YX1YV0+Uk4/yuZo0Bjk+rErG505YMfRVtxSJ4ee418
    ZMfp4vOaqzKrSkHPie3zIR7SuVUeYPFZbcV65BKCUlT4EtPLgi8CHu8bMBQkdWxOnQEIBeY+TerAee/SiBCrA8M/n9bpLlRJkUb+URiGLoaj+XHym//fmCclAcveKlba6vKrcbqhEjsnY2F522yaTHcc1+wXUWqif7rSIPhc0+
    MT1hB1SZjd8dmPgtZUyzcL51DoChy+hZ4vLzE=
            </CipherValue>
          </CipherData>
        </EncryptedData>
      </connectionStrings>

  • 相关阅读:
    怎样删除数据库中的反复记录?
    GitHub上最受欢迎的Android开源项目TOP20
    hdu2066一个人的旅行
    《Head First 设计模式》学习笔记——模板方法模式
    C语言盲点笔记1
    北大光华管理学院院长蔡洪滨:商学院需要有灵魂_网易财经
    戴修宪_百度百科
    [对话CTO]当当网熊长青:兴趣是成为优秀工程师的第一因素-CSDN.NET
    【网络金融部团队及负责人,太平洋证券股份有限公司】前程无忧官方招聘网站
    辞职穷半年,转行穷三年!!
  • 原文地址:https://www.cnblogs.com/scgw/p/1139624.html
Copyright © 2020-2023  润新知