如何在不使用硬编码凭据的情况下正确连接到数据库?

问题描述 投票:0回答:1

因此,我正在为管理员,客户和来宾创建一个桌面应用程序,以查看和购买我保存在数据库中的产品。该系统运行良好,用户输入了自己的凭据并登录,但是使用硬编码的凭据建立了与数据库的连接,如下所示:

    Public Function CONNECTION_STRING() As String
            Dim myConnectionString As String
            myConnectionString = "server=xxx.xx.xx.x;" _
                & "uid=admin;" _
                & "pwd=123;" _
                & "database=item_db"
            Return myConnectionString
    End Function

以硬编码方式交付此应用是否安全?如此容易使用Ghidra并阅读我的意思。我已经阅读了有关对其进行哈希处理的信息,但是数据库登录系统将如何对其进行哈希处理?对不起,我很无知,但我正在学习:/。顺便说一句,哈希将是bCrypt。

mysql vb.net
1个回答
0
投票

不,那不是前进的好方法。

您不必将凭据硬编码到应用程序中,这里有几种方法:

  1. [如果可能,请使用本机身份验证(“集成安全性”)对数据库使用用户的AD凭据。这样,凭据不会在客户端上发送或以明文形式存储。
  2. 提示用户输入凭据,并使用它们来认证数据库连接。
  3. 使用配置文件存储凭据。这几乎与源中包含凭据一样糟糕,但是至少它更易于管理,并且可以将其排除在VCS之外。
  4. 使用后端应用程序服务器处理数据,以防止用户直接访问数据库。更多的架构更改。

前两个要求授予每个用户连接数据库的权限。

© www.soinside.com 2019 - 2024. All rights reserved.