以编程方式设置连接字符串以隐藏db密码

时间:2015-02-25 03:14:16

标签: mysql vb.net winforms dataset connection-string

我在Vb.net winforms(连接到mysql服务器)的数据集中使用TableAdapter以允许集成Devexpress调度程序 - 我已经使用这种方法一段时间了;虽然我知道vb.net的许多安全漏洞,包括反编译和数据包嗅探纯文本通信;我试图尽可能地锁定安全性,这使我遇到了当前的问题。

数据集设置为使用mysql的.net框架数据提供程序进行连接,该数据提供程序请求服务器地址,用户名,密码和数据库文件 - 然后我可以选择“在连接字符串中保存登录凭据”或“在我的编程代码中设置登录凭据”为了节省时间,我保存了登录凭据。

这会添加一个设置文件(connectionstring)

server=mysqlserveraddress.com;user id=mysqluser;password=mysqlpassword;database=mysqldb;persistsecurityinfo=True

这也意味着这些凭据以纯文本形式保存在我的程序的安装文件夹中

我正在尝试过渡到在我的编程代码中包含这个连接字符串但是我不知道如何处理它 - 对于非数据集事务我已经在包含凭证的模块中声明了公共const

'database variables
Public Const dbserver As String = "mysqlserveraddress.com"
Public Const dbuser As String = "mysqluser"
Public Const dbpassw As String = "mysqlpassword"
Public Const dbfile As String = "mysqldb"

我在需要时创建连接。

如何以编程方式输入连接字符串,以便外行人员看不到它。

1 个答案:

答案 0 :(得分:0)

您是说要在运行时设置现有连接字符串的用户ID和密码属性?如果是,那么您可以使用适当的连接字符串构建器。我不使用MySQL和Connector / Net,但看起来应该是这样的:

Dim builder As New MySqlConnectionStringBuilder(partialConnectionString)

builder.UserId = userId
builder.Password = password

Dim fullConnectionString As String = builder.ConnectionString

任何反编译代码的人都会看到这些数据。您可以考虑将整个批次存储在配置文件中,但加密它。有关详细信息,请查看:

http://www.vbforums.com/showthread.php?532768-NET-2-0-Protected-Configuration-(Encrypting-Config-Files)