0

不使用可信連接的風險是什麼?與SQL Server不可信連接的風險?

例如這裏是一個情景:我創建了一個非常簡單的應用程序,它只有4-5行,它使用與我的連接字符串的web.config中的SQL連接代碼,併發送選擇命令到我的數據庫,並在界面中顯示結果。

什麼這裏的安全弱點是什麼?

編輯:

我知道可信連接是與身份驗證,我不知道是我不知道怎麼才能如果我不使用它的系統被黑客攻擊? (我將在我公司的服務器上使用我的應用程序,並且應用程序是公共應用程序,因此每個公司的成員都可以使用它,所以爲什麼我需要一個可信任的連接,如果它是本地公司應用程序?)

回答

3

來看看它的其他方式,可信連接的主要好處是,你不必在你的應用程序來管理密碼。如果你的應用需要密碼才能連接到SQL Server,然後你在哪裏把密碼(或連接字符串),使應用程序的用戶(或其他開發人員,或者系統管理員,或外部顧問等)無法讀取,但你可以在需要時仍能輕鬆改變它?

密碼的文件或註冊表中通常可以通過用戶讀取,因爲當它們運行的​​應用程序有找回密碼,因此用戶需要訪問。或者系統管理員或顧問可以訪問應用程序配置文件所在的文件系統。使用某種形式的密碼來模糊密碼是可能的,但是您必須保護和管理解密密鑰。硬編碼在應用程序的密碼讓人難以改變,也使得它很有可能是密碼會在源代碼控制系統,這通常是相對不安全的系統可見(在實踐中,如果不設計)。您可以創建應用程序在啓動時獲取密碼的Web服務,但必須以某種方式驗證對該服務的訪問權限。

使用可信身份驗證可以完全避免所有這些操作系統負責身份驗證,除非您是世界級安全程序員,否則Windows提供的機制比您可以創建的機制更可靠。

1

AFAIK只有可信連接提供的額外安全層纔是身份驗證。如果您使用可信連接,則Windows將在Active Directory中驗證您的連接。

快速谷歌單產此鏈接:

What is a Trusted Connection?

+0

我知道受信任的連接與身份驗證有關,我想知道的是我不知道如果我不使用它,系統如何被黑客入侵? (我將在我公司的服務器上使用我的應用程序,並且應用程序是公共應用程序,因此每個公司成員都可以使用它,所以如果它是本地公司應用程序,爲什麼還需要可信連接?) – HOY

+0

如果您的SQL服務器暴露於更廣泛的互聯網,並以某種方式設法得到一個SQL用戶名和密碼。 我同意你的觀點......我從不使用它。 – mghaoui

2

我會用我的應用程序在我公司的服務器和應用程序 是一個公共應用程序,所以每一個公司成員都可以使用它,那麼爲什麼 我需要的,如果它是當地一家公司的應用程序受信任的連接?

不可信連接中的安全風險在於如何存儲SQL服務器密碼並在應用程序中使用它們。如果您存儲在配置文件中或硬編碼密碼的程序,誰對你的代碼訪問的任何其他開發人員可以查看和最差可以這樣可能會破壞應用程序或竊取敏感信息的方式更改數據庫。這也會成爲隱私泄露,你的公司可能會被起訴(你不能想象會發生什麼)。

@Pondlife也闡述得非常好。