![](/img/trans.png)
[英]Java: Insert scores into remote MySQL database without hardcoding login credentials
[英]How to properly connect to a database without hardcoding credentials?
所以我正在開發一個桌面應用程序,供管理員、客戶和客人查看和購買我保存在數據庫中的產品。 系統運行良好,用戶輸入他的憑據並登錄,但與數據庫的連接是使用硬編碼憑據進行的,如下所示:
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。
不,這不是前進的好方法。
您不必將憑據硬編碼到應用程序中,這里有幾種方法:
前兩個要求每個用戶都被授予連接數據庫的權限。
接受的答案給了我一個好主意,尋找一種在使用軟件的系統中存儲連接憑據的方法。 在我的例子中,所有使用我正在開發的軟件的計算機都使用 Microsoft Windows 10,所以它就像使用ODBC Data Sources一樣簡單,這是一個允許存儲連接字符串的軟件。 由於該軟件將在特定建築物中使用,因此在執行安裝時,我們只需將連接字符串保存在 ODBC 數據源中,並從源代碼中引用它,以防它在特定計算機中不存在不會連接。
Dim con As New MySqlClient.MySqlConnection
Public Sub Connect()
Try
conn.ConnectionString = "DSN=THE NAME OF THE DSN CREATED"
conn.Open()
Catch ex As MySqlClient.MySqlException
MessageBox.Show(ex.Message)
End Try
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.