【问题标题】:What's the most secure way to store configuration parameters of a web site [duplicate]存储网站配置参数的最安全方法是什么[重复]
【发布时间】:2016-01-20 20:47:59
【问题描述】:

我正在寻找最安全、最方便的方法来将一些关键参数存储到我的 ASP.NET 网站的配置文件中(使用 Visual Studio 2012 使用 C# 编写代码,并使用 IIS 发布,但我没有知道这很重要),例如连接字符串和其他参数。

根据我的发现,我有以下选择:

  • web.config。这样,只有我的网站才能访问这些设置。

问题:当我从 Visual Studio 发布网站的更改时,参数可能会被覆盖(或者有没有办法在发布期间不覆盖它们?)

  • machine.config => 发布不会覆盖现有参数。

问题:机器上的所有网站都可以访问配置文件(这可能是一个安全问题)

  • SQL Server:易于维护

问题:需要一个连接字符串来访问数据库。我应该在哪里存储连接字符串?

  • 注册表:平均可维护性。无法为每个类别或网站定义特定的用户权限。

  • 一个简单的 INI 文件。非常容易维护。但这足够安全吗?

提前感谢您的回答。

【问题讨论】:

  • 您确实可以阻止 Visual Studio 在发布操作期间复制 web.config。 stackoverflow.com/questions/2812905/… 我倾向于将我的应用程序的配置数据放入一个单独的 .config 文件中,该文件从 web.config 中引用,然后阻止 VS 发布它。

标签: c# asp.net security iis


【解决方案1】:

对于 .net aspx 或 mvc web.site,web.config 是标准配置,远程用户无法查看或下载它。

如果您想存储敏感信息,可以使用可逆算法存储加密值。

查看 appSettings 部分。 在这种情况下,您可以使用 webconfigurationmanager.appsettings 读取数据,但请记住,如果要更改这些值,则需要重新启动应用程序以加载新值。

Machine.config 更多的是机器配置。

SQL SERVER 或一般来说数据库可能是一种方法,但我再次使用加密是数据是敏感的。如果您想动态加载值,而不必重新加载应用程序,这可能是一种可行的方法,但这实际上取决于您如何读取或缓存这些值。

关于注册表和 ini 文件,我不建议将它们用于 Web 应用程序。

希望对你有帮助。

【讨论】:

猜你喜欢
  • 2011-03-05
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 2012-06-23
  • 1970-01-01
  • 2021-05-06
  • 2011-03-01
相关资源
最近更新 更多