【问题标题】:How to hide XML Configuration File如何隐藏 XML 配置文件
【发布时间】:2012-05-17 21:51:27
【问题描述】:

我刚刚完成了我的应用程序并完成了构建。一切正常。

然后我注意到文件夹中有一个 XML 配置文件,所以我点击它。

就是这样,我的整个连接字符串以及我的远程 sql 服务器 IP 地址、登录用户名和登录密码,所有人都可以看到。

我尝试删除 XML 配置文件并运行程序,它只是在文件夹内创建了一个 App_Data 文件夹,并带有默认数据库。

有什么方法可以隐藏 XML 配置文件或使其不可读,因为它包含我所有的连接信息。

谢谢。

【问题讨论】:

  • 你能嵌入xml配置文件as a resource吗?对于一个坚定的黑客来说,它仍然不安全,但它比让文件清晰可见要好。我怀疑是否有任何 100% 有效的方法可以将此信息存储在客户端程序集中;你最好连接到服务,但这是一个很大的设计变化。

标签: c# wpf xml


【解决方案1】:

查看这篇关于保护连接字符串的 MS 文章:

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/protecting-connection-information

或者,将连接字符串硬编码到您的应用程序中(注意:恶意用户可以相当容易地对 .net 应用程序进行逆向工程),或者尽可能使用集成安全性。

【讨论】:

  • 停用文档
【解决方案2】:

你可以加密它:http://chiragrdarji.wordpress.com/2008/08/11/how-to-encrypt-connection-string-in-webconfig/

如果可以,请使用集成安全性。

【讨论】:

  • -1 这不是一个真正可行的解决方案。密钥将在用户的计算机上(如果解密它的运气不好)用户帐户还必须有权访问密钥才能让应用程序使用它。如果用户有权访问它……您已经通过混淆实现了安全性。
  • 我认为这个 wpf 应用程序没有使用 asp.net(基于标签)
  • 该链接适用于 ASP.NET - 问题的标签是 WPF,尽管您可以欺骗它工作。或者,它可以在代码中完成-msdn.microsoft.com/en-us/library/…
  • @RichardOD 你仍然有一个非常严重的密钥管理问题。
  • @Conrad- 我同意。我不推荐这种方法。我个人认为加密通常只对服务器有意义。
【解决方案3】:

任何隐藏连接字符串的尝试只会使您和任何攻击者都难以访问它。这并不罕见,但不是很安全,而且确保定期密码轮换也存在问题。

如果可以,请切换到集成安全性。 (在连接字符串中包含Integrated Security=SSPI,但没有用户名或密码。)连接将使用您自己的用户帐户(或运行您的代码的帐户)创建,假设

  • 您正在使用 MS SQL Server
  • SQL Server 位于同一系统或同一 AD 域中,因此能够识别该帐户。

【讨论】:

  • 还假设 SQL Server 是目标数据库。
  • 确实如此。我将进行编辑以明确这一点。该问题仅提及.NET,没有设置环境。
  • 嗨,是的,我的远程服务器上的目标数据库是 SQL Server。但是如果他们使用这种连接,没有用户名或登录密码,他们将如何连接到数据库?因为他们没有指定任何登录凭据来访问它
  • @MarkMackanga - 您的代码在用户帐户下执行。您可以使用sp_addrolemember 将 SQL Server 角色添加到此帐户,之后它将能够连接。对于 SQL Server 2005(或从它升级的任何版本),Administrators 组默认拥有足够的权限,因此您可以在定义生产权限之前开始试验。
  • 哦,好的,我现在明白了。是的,这正是我所做的。感谢您的回复和快速响应!
【解决方案4】:

无论您做什么,一个专用的调试器都几乎可以看到您的连接字符串。

请记住,如果您可以在调试会话中查看 Connection.ConnectionString,那么使用 WinDBG 或 Visual Studio 的用户也可以。因此,即使您加密了文件,用户也可以让您解密然后检查明文值。

这就是为什么许多需要来自服务器的信息的客户端应用程序(尤其是移动应用程序)通常不直接连接到数据库的原因。相反,它们通常连接到服务。然后,您根据您的服务授权和验证用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2013-04-04
    相关资源
    最近更新 更多