2016-03-11 115 views
0

我在Delphi(Object Pascal)中編寫了一個多用戶應用程序。應用程序使用數據庫授權和驗證用戶

我想使用MySql,Oracle或PostgreSQL作爲數據庫。

我有一個表Users與用戶名和密碼列。 (我做想對於每個用戶都有單獨的DB登錄)

當然本身具有連接到數據庫,並授權由輸入的用戶名和密碼組合的用戶應用程序。

像SAP,Sage或Social Networks這樣的軟件會使用相同的方法,我猜測?

因此,應用程序必須知道連接到數據庫的數據庫登錄用戶名和密碼,然後檢查Users表。


我的問題是:

我在哪裏保存數據庫的登錄用戶名和密碼的應用程序,它可以檢查Users表? 我不想在應用程序中對其進行硬編碼,因爲它可以通過反向工程輕鬆訪問,然後用於直接連接到數據庫。

回答

1

老實說,你最好的方法是遵循服務器周圍的最佳安全實踐。你可以使用salt,但散列函數也必須存在於服務器上,如果黑客首先能夠訪問服務器,那麼在查找散列並提取密碼之前不會很長時間。

我認爲有效率的組織實際上通過默默無聞的方式產生了一些安全性。也就是說,將DB連接證書和字符串放在配置文件中。儘管如此,訪問應用程序代碼將給黑客提供他們想要的東西的線索,但這並不意味着您不應該遵循最佳編碼實踐。

然後,鎖定你的盒子。與您的安全團隊合作,確保任何不想訪問的人都無法訪問它。

+0

感謝您的回答,但如果我的應用程序通過默默無聞的方式使用安全性,我將無法入睡。 – Tommy

+0

大聲笑,好吧,它不會。我的觀點是,如果黑客有權訪問你的盒子,你就有更多的事情需要擔心。如果你想要安全,那麼你把它放在黑客和盒子之間,而不是在應用程序和數據庫之間。 – tadamhicks

+0

我想你是對的,並接受你的回答;) – Tommy

相關問題