1

我正在使用 OdbcConnection 与 DB2 数据库 ex 进行通信。

using (var conn = new ODBCConnection("Database=Database;UID=user;PWD=password"))
{
    conn.Open();
    …
}

我担心有权访问机器的人可能会试图窃取数据库凭据。我已经混淆了代码,但是可以使用数据包嗅探器来获取连接字符串吗?如果是这样,有没有办法防止这种情况?

4

2 回答 2

0

如果有人可以访问您的程序集或可执行文件,则可以使用ildasm来读取 C# 编译成的中间语言 (CIL)。即使您混淆了代码,也很容易检索字符串文字。

混淆器通常会加密字符串文字,并在使用它们之前注入一个额外的方法调用来解密它们。这意味着可以获得解密程序的实现和密钥,并自己运行它们。

因此,要回答您的问题,您甚至不需要使用数据包嗅探器来获取凭据,只需检查 IL 即可。

于 2012-11-16T19:22:13.053 回答
0

您可以将您的连接字符串存储在 App.Config/Web.Config 中,然后您可以加密您的连接字符串

http://www.asp.net/web-forms/tutorials/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs

http://msdn.microsoft.com/en-us/library/zhhddkxy(v=vs.100).aspx

于 2012-11-16T19:17:59.710 回答