【问题标题】:How to encrypt app.config ( Without decrypt method )如何加密app.config(没有解密方法)
【发布时间】:2012-12-21 02:45:59
【问题描述】:

我想加密位于 app.config 中的“ConnectionString”设置。 但是在运行时,我想直接使用(阅读ConnectionString),不解密。

我的意思是,我不想让任何人解密字符串。应该没有解密方法。 我在想;它应该像嵌入 .net/asp.net/iis 功能一样使用。 比如“Windows登录”(可以输入,可以使用,但不能解密)

===

示例用法;您有一个包含一些关键数据的小型网站。 你没钱买私服, 所以你在共享服务器上工作,如果服务器以某种方式被黑客入侵, 您的应用程序和数据库将被盗。 但是如果你把加密的连接字符串放在 app.config 中, 这将很难解密它并查看数据库中的内容。

【问题讨论】:

  • 好的,所以 - 如果你不能解密它,你的应用程序将如何使用它?坏消息:你是那个锁着他的房子的人,把钥匙扔了,不考虑如何再次打开门。如果您的服务器无法解密配置,则它无法访问数据库。案例关闭,无用的配置。
  • 更不用说一旦服务器被入侵,你的 web.config 要么将要么基本上不相关。
  • 已加密的内容将保持不变,直到被解密。恐怕就这么简单。
  • 也许您应该围绕配置文件的可能替代方案来解决您的问题,以存储应用程序范围的设置?
  • @各位,你们是如何保护 sql 数据的呢?如果我发现winserver2012零日漏洞并以某种方式攻击您的服务器,那么您将没有任何数据库保护?

标签: c# .net sql iis app-config


【解决方案1】:

DPAPI 可能是一个解决方案。

您可以将您的 usr/pwd/credentials 连接到机器。 JGalloway 比我更了解这一点。JGalloway 比我更了解任何 dotnet。 http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx

如果我没有混淆,这将创建一个绑定到机器硬件的 usr/pwd 组合。 IE。换网卡,东西可能会坏。还;不能在一台机器上创建 usr/pwd/creds 然后转移到另一台机器上。简而言之,这意味着你必须在生产机器上做任何你必须做的事情——如果你的目标是持续交付,这可能会让你头疼。

警告:我自己没有尝试过。相反,我选择了“常规”加密。如果有人掌握了我的加密字符串和字节码并对其进行了逆向工程,我会被熏死。但这对我来说已经足够安全了。

【讨论】:

    【解决方案2】:

    加密和解密配置文件中的配置设置可以使用 aspnet_regiis.exe 工具从命令行完成。

    详细信息在下面的 MSDN 文章中有描述:

    Encrypting and Decrypting Configuration Sections

    由于该工具主要用于 Web 应用程序,因此它需要将配置文件命名为“web.config”。这意味着您暂时必须将 app.config 文件重命名为 web.config:

    重命名 App.config web.config aspnet_regiis -pef 连接字符串。 -prov DataProtectionConfigurationProvider 重命名 web.config App.config

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2012-02-27
      • 2021-01-10
      • 1970-01-01
      • 2016-01-10
      • 2013-02-13
      • 2010-10-13
      • 2016-01-26
      • 2020-07-16
      相关资源
      最近更新 更多