2009-11-02 40 views
1

我的任務是在傳統的ASP應用程序中確保連接字符串的安全,我想知道我是否應該咬緊牙關並將整個應用程序升級到ASP.NET,或者是否有簡單的修復。ODBC連接是否必須使用明文密碼?

目前的應用程序連接到一個ODBC數據源,像這樣的連接字符串:

DSN=Mydb;uid=myuser;pwd=mypassword;DATABASE=mydb 

我的問題是,是否有可能以某種方式加密該密碼,或從方程式中移除ODBC?

回答

2

您可以在域用戶下運行Web應用程序,並使用集成安全性,而不是在連接字符串中拼出用戶標識和密碼。

+0

+1,只要數據庫驅動程序支持集成安全性(大多數情況下)。 – devstuff

+0

以域用戶身份運行Web應用程序會帶來一系列其他挑戰:確保此用戶具有與默認ASP應用程序標識相同的權限;維護用戶生命週期(例如,在IIS過期時更改密碼;必須爲數據庫連接創建單獨的域帳戶,因爲使用常規用戶帳戶可能不是一個好主意);現在允許在該站點下運行的任何其他Web應用程序連接到數據庫服務器;等等。根據您的環境和要求,這些可能不是什麼大不了的事情,但您至少需要了解這些問題。 –

1

而不是ODBC,你可以考慮OLEDB。我一般會推薦後者(可能有例外,例如,當需要/像ODBC配置提供的間接方法允許在不改變應用程序的配置或源代碼的情況下切換dbs時)。

編輯︰在快速閱讀的問題,我來到他的想法,你正在使用MySQL(所有這些「我的」在連接字符串片段...),因此下面我不適用,如果另一個數據庫是在使用中...

但是,當您試圖不在連接字符串中提供密碼時,可能無法使用OLEDB,因爲此類連接上的MySQL documentation似乎不允許備用身份驗證, /密碼。

因此,您可能需要/喜歡能夠使用集成安全性調用ODBC,並將MySQL認證/密碼存儲在此源的ODBC配置級別。以這種方式,密碼在應用程序級別不被引用(但仍然可以在ODBC配置中找到...)。
使用ODBC連接字符串鍵值對用於使用集成的安全性是

 
"Integrated Security=SSPI" 
which I believe is equivalent to 
"Trusted_Connection=yes" 

用於連接串A有用的參考易於被命名www.connectionstrings.com

0

另一種方法是在連接字符串使用某種算法(加密或使用某些組件(如RSADLL)),然後解密應用程序中的連接字符串。

不要忘記提供一個服務頁面,允許管理員創建一個加密的連接字符串。

相關問題