如(rú)何授權(quán)web服務器提供安全數據庫訪問
允許Web用戶訪問數據庫是一項很精細的工作,需(xū)要認真(zhēn)的考慮,不能馬虎從事。
TechRepublic會員E Spigle 最近在(zài)TechRepublic Technical 的Q&A forum上提出(chū)了下麵這個問題:
我們正在進行一項工作,把一個很老的FoxPro係統轉換成我所工作的公司裏的MS SQL / VB係(xì)統。我們已經在內部廣泛地使用了SQL數據庫。它目前位(wèi)於我們局域網的防火牆之後,隻能支持內部使用。可是我們的一部分轉換程序帶來了一(yī)些Web聯機(jī)應用(yòng)。現(xiàn)在我們就麵臨一個兩難的局麵,我們必須為了(le)讓(ràng)Web用戶和局域網的(de)用戶(hù)能夠(gòu)同時訪問(wèn)同一(yī)個數據庫找(zhǎo)到一個好的解決方法。目前我們的IIS 6.0 Web server在DMZ.如何能夠讓web服務器為網絡應用提供數據庫訪問呢?
問題分析
這是(shì)個很有意思的問題,第一(yī)眼看起來很簡單(dān),但是當你再對它進行深入考慮後,你就會發現它的複雜之處。任何時候,當你想要使數據庫具有互聯網訪問能力(lì)時,都有很多問題需要考(kǎo)慮。我首先會(huì)考慮的問題就是“我(wǒ)們處理的是什麽類型的數據?”和(hé)“信息的敏感程度如何?”
我會考慮這兩個問題的原因(yīn)是我(wǒ)需要確定這些數據能夠承受多大的風險。如果不能夠承擔任何風險,我可能會投入很多的資源和精力來保證我的數據(jù)盡可(kě)能不受侵害。但是,如果可(kě)以承擔一定的風險,我會謹慎從事,但不會采用極端手段。比如,如果數據是一個病人的醫療曆史(shǐ)信息,我(wǒ)就會不遺(yí)餘力地保護數據安全,這(zhè)就意味著不通過IIS連接,不使用SQL Server.
在我詳細說明以前,我(wǒ)要聲明,我(wǒ)對微軟並沒有(yǒu)偏見。我僅僅是要避(bì)免風險。微軟的產品能夠被很好地保護,並且在上述的情況下工作良好。但是(shì),由於它的流行性,微軟的產品更容易成為病毒,蠕蟲、黑客和諸如此類(lèi)攻擊的靶子。在對於風險(xiǎn)承受能力比較低的環境裏避免使用微軟的產品,這樣就能夠減少我的麻煩。
而且,根據數據所能夠承擔(dān)的風險程度,我將決定是否需要(yào)在web服務器和數據庫(kù)之間進行加密,以(yǐ)及數據在數據庫裏是否需要加密。如果我們希望能(néng)夠(gòu)獲得(dé)最高的安全性,我就會選擇使(shǐ)用內置的或者第三方的加密軟件。如果(guǒ)數據對於安全性要求不是(shì)那麽高,我就會選擇根(gēn)本(běn)不加密,或者選擇低級別一些的加密方法。
最後,我還需要決定使用什麽(me)樣的連接來訪問數據庫。如果加密(mì)是必須的,或者/而且訪問是通過客戶服務器軟件來進行(如同問(wèn)題裏描述的那樣),那麽我就需要(yào)使用VPN和一個應(yīng)用層的代理。而且,我可能會考慮在我的Web服務器和(hé)數據庫(kù)之間,設置一個(gè)應用服(fú)務器。
對於上麵這些問題的答案幫助我設計數(shù)據庫訪問的環境(jìng)。
搭建係統(tǒng)
我假設(shè)在E Spigle問題中所描述的數據的敏感(gǎn)程度不是非常高,所以使用IIS和(hé)SQL Server是可以被接受的。具體如(rú)圖A所示:
圖(tú)A:網絡規劃
如圖A所示的網絡通信中,80端口的HTTP或者1443隻被允許到達Web服(fú)務器。然後Web服務器通過1433端口,通過TCP協議同SQL服務器進行通(tōng)信。另(lìng)一種方法,是使用微(wēi)軟的ISA服務器作為轉換代理,並允許它控(kòng)製與SQL服務器的通信。
無論你選擇哪(nǎ)一種,都有一係列問(wèn)題需要考慮,以確保你的SQL Server數據庫的安全。這些問(wèn)題在網上可以查到,它們包括了比(bǐ)如保護(hù)你的Windows服務器,保護IIS,保護SQL Server,處理Web服務器同SQL server的通信問題,這包含了認證、協議等等方麵的問(wèn)題。幸運的是微軟在(zài)MBSA(Microsoft Baseline Security Analyzer)提供了一些幫助。
最後,你的開發人員和數據庫管理員還需要把一係列標準和程序融合到應用代碼和數據庫中,以把安全風險降(jiàng)到最低。
最佳方案和可接受的風(fēng)險
本篇文章講述了(le)在一個看起來很(hěn)簡單的問題背後的一些複雜之處,“怎樣才能最好地讓網(wǎng)絡(luò)應用通過(guò)web服務器訪問數據庫?”也許還(hái)有資金的壓力,但最終,會歸結為在可承受的風險程(chéng)度和投入之間的平衡問(wèn)題。這是每一(yī)個麵對這個問題的人都需要考慮的。
關(guān)鍵詞:web服務器,數據庫
閱讀本文後您有什麽感想? 已有 人給(gěi)出評價!
- 0
- 0
- 0
- 0
- 0
- 0