簡體   English   中英

如何存儲數據庫密碼

[英]how to store database password

我確信已經有很多討論,但如何在應用程序中存儲密碼? (我的意思是不是要存儲在數據庫中的表中的用戶密碼,而是用於構建連接字符串的密碼)

我已經看到過將其加密存儲在平面文件(如xml文件)中的建議,然后在運行時讀取它並對其進行解密。 如果此應用程序在服務器上運行,這是一個非常好的選擇,但是如果將應用程序部署到最終用戶的PC上該怎么辦? 即平面文件將被復制到用戶的電腦上。 這仍然是一個好習慣嗎? (我的直覺是'不')

我知道SecurityString的存在,但是我在一篇文章中也讀到了SecurityString也很容易被解讀。

使用Windows 7附帶的密碼存儲庫是個好主意嗎? 有沒有以編程方式使用它的好例子? 我在msdn中看過一個例子,但首先它標有'windows 8',其次當我下載文件並在visual studio 2012 EXPRESS中打開解決方案時,它無法打開。

歡迎提出任何建議......非常感謝。

--update--

假設該應用程序將在Windows域中的少數幾台PC上運行。 (1)啟動時,應用程序將執行LDAP身份驗證(活動目錄)。 只有在成功驗證后,應用程序才會繼續運行,並且(2)在應用程序可以連接到數據庫的場景后面,用戶輸入來查詢數據庫,這就是db passwd進入游戲以構建連接字符串的地方(不,這不是SQL SERVER數據庫所以我不認為使用Windows身份驗證的選項是可行的,除非使用商業插件)。

db駐留在同一個域中,並且已設置為允許某些范圍的IP地址,並且已啟用SSL。 簡而言之,從這個意義上講它是非常安全的。 唯一尚不安全的是如何為應用程序存儲db passwd。

引起我注意的是Mysql Workbench。 它將保存數據庫連接,包括密碼 - 存儲在密碼保險庫中。 這是mysql自己的密碼保險庫實現,我很好奇它是如何完成的。

無法為您的用戶提供密碼並希望它保持安全。 即使它隱藏在已編譯的應用程序中並使用單向散列進行散列,確定的也將恢復它。

相反,您應該考慮您的安全架構。

如果您提供應用程序連接的服務,那么您應該考慮提供某種更強大的身份驗證作為公共API的一部分。

如果連接字符串用於連接到分布式軟件的另一部分,則應該由最終用戶配置密碼並將其存儲在密鑰環或其他加密存儲中。

- 更新 -

看起來這可能就是你要找的東西;

http://www.microsoft.com/indonesia/msdn/credmgmt.aspx

如果要部署的應用程序沒有或幾乎沒有對系統安全性的控制,即外部用戶PC,那么創建用戶登錄可能是值得的。 根據此登錄對用戶進行身份驗證,然后從相對安全的服務器使用您提供數據所需的任何憑據。

這並不能保證安全性,但如果您需要在將來某個時候更改密碼,或者個人用戶遭到入侵,則更容易維護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM