時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
允許Web用戶訪問數(shù)據(jù)庫是一項(xiàng)很精細(xì)的工作,需要認(rèn)真的考慮,不能馬虎從事。
TechRepublic會(huì)員E Spigle 最近在TechRepublic Technical 的Q&A forum上提出了下面這個(gè)問題:
我們正在進(jìn)行一項(xiàng)工作,把一個(gè)很老的FoxPro系統(tǒng)轉(zhuǎn)換成我所工作的公司里的MS SQL / VB系統(tǒng)。我們已經(jīng)在內(nèi)部廣泛地使用了SQL數(shù)據(jù)庫。它目前位于我們局域網(wǎng)的防火墻之后,只能支持內(nèi)部使用??墒俏覀兊囊徊糠洲D(zhuǎn)換程序帶來了一些Web聯(lián)機(jī)應(yīng)用。現(xiàn)在我們就面臨一個(gè)兩難的局面,我們必須為了讓W(xué)eb用戶和局域網(wǎng)的用戶能夠同時(shí)訪問同一個(gè)數(shù)據(jù)庫找到一個(gè)好的解決方法。目前我們的IIS 6.0 Web server在DMZ。如何能夠讓web服務(wù)器為網(wǎng)絡(luò)應(yīng)用提供數(shù)據(jù)庫訪問呢?
問題分析
這是個(gè)很有意思的問題,第一眼看起來很簡單,但是當(dāng)你再對(duì)它進(jìn)行深入考慮后,你就會(huì)發(fā)現(xiàn)它的復(fù)雜之處。任何時(shí)候,當(dāng)你想要使數(shù)據(jù)庫具有互聯(lián)網(wǎng)訪問能力時(shí),都有很多問題需要考慮。我首先會(huì)考慮的問題就是"我們處理的是什么類型的數(shù)據(jù)?"和"信息的敏感程度如何?"
我會(huì)考慮這兩個(gè)問題的原因是我需要確定這些數(shù)據(jù)能夠承受多大的風(fēng)險(xiǎn)。如果不能夠承擔(dān)任何風(fēng)險(xiǎn),我可能會(huì)投入很多的資源和精力來保證我的數(shù)據(jù)盡可能不受侵害。但是,如果可以承擔(dān)一定的風(fēng)險(xiǎn),我會(huì)謹(jǐn)慎從事,但不會(huì)采用極端手段。比如,如果數(shù)據(jù)是一個(gè)病人的醫(yī)療歷史信息,我就會(huì)不遺余力地保護(hù)數(shù)據(jù)安全,這就意味著不通過IIS連接,不使用SQL Server。
在我詳細(xì)說明以前,我要聲明,我對(duì)微軟并沒有偏見。我僅僅是要避免風(fēng)險(xiǎn)。微軟的產(chǎn)品能夠被很好地保護(hù),并且在上述的情況下工作良好。但是,由于它的流行性,微軟的產(chǎn)品更容易成為病毒,蠕蟲、黑客和諸如此類攻擊的靶子。在對(duì)于風(fēng)險(xiǎn)承受能力比較低的環(huán)境里避免使用微軟的產(chǎn)品,這樣就能夠減少我的麻煩。
而且,根據(jù)數(shù)據(jù)所能夠承擔(dān)的風(fēng)險(xiǎn)程度,我將決定是否需要在web服務(wù)器和數(shù)據(jù)庫之間進(jìn)行加密,以及數(shù)據(jù)在數(shù)據(jù)庫里是否需要加密。如果我們希望能夠獲得最高的安全性,我就會(huì)選擇使用內(nèi)置的或者第三方的加密軟件。如果數(shù)據(jù)對(duì)于安全性要求不是那么高,我就會(huì)選擇根本不加密,或者選擇低級(jí)別一些的加密方法。
最后,我還需要決定使用什么樣的連接來訪問數(shù)據(jù)庫。如果加密是必須的,或者/而且訪問是通過客戶服務(wù)器軟件來進(jìn)行(如同問題里描述的那樣),那么我就需要使用VPN和一個(gè)應(yīng)用層的代理。而且,我可能會(huì)考慮在我的Web服務(wù)器和數(shù)據(jù)庫之間,設(shè)置一個(gè)應(yīng)用服務(wù)器。
對(duì)于上面這些問題的答案幫助我設(shè)計(jì)數(shù)據(jù)庫訪問的環(huán)境。
搭建系統(tǒng)
我假設(shè)在E Spigle問題中所描述的數(shù)據(jù)的敏感程度不是非常高,所以使用IIS和SQL Server是可以被接受的。具體如圖A所示:
圖A:網(wǎng)絡(luò)規(guī)劃
? |
?如圖A所示的網(wǎng)絡(luò)通信中,80端口的HTTP或者1443只被允許到達(dá)Web服務(wù)器。然后Web服務(wù)器通過1433端口,通過TCP協(xié)議同SQL服務(wù)器進(jìn)行通信。另一種方法,是使用微軟的ISA服務(wù)器作為轉(zhuǎn)換代理,并允許它控制與SQL服務(wù)器的通信。
無論你選擇哪一種,都有一系列問題需要考慮,以確保你的SQL Server數(shù)據(jù)庫的安全。這些問題在網(wǎng)上可以查到,它們包括了比如保護(hù)你的Windows服務(wù)器,保護(hù)IIS,保護(hù)SQL Server,處理Web服務(wù)器同SQL server的通信問題,這包含了認(rèn)證、協(xié)議等等方面的問題。幸運(yùn)的是微軟在MBSA(Microsoft Baseline Security Analyzer)提供了一些幫助。
最后,你的開發(fā)人員和數(shù)據(jù)庫管理員還需要把一系列標(biāo)準(zhǔn)和程序融合到應(yīng)用代碼和數(shù)據(jù)庫中,以把安全風(fēng)險(xiǎn)降到最低。
最佳方案和可接受的風(fēng)險(xiǎn)
本篇文章講述了在一個(gè)看起來很簡單的問題背后的一些復(fù)雜之處,"怎樣才能最好地讓網(wǎng)絡(luò)應(yīng)用通過web服務(wù)器訪問數(shù)據(jù)庫?"也許還有資金的壓力,但最終,會(huì)歸結(jié)為在可承受的風(fēng)險(xiǎn)程度和投入之間的平衡問題。這是每一個(gè)面對(duì)這個(gè)問題的人都需要考慮的。
關(guān)鍵詞標(biāo)簽:web,服務(wù)器,數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈 IIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin 在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻略 win2000server IIS和tomcat5多站點(diǎn)配置
人氣排行 XAMPP配置出現(xiàn)403錯(cuò)誤“Access forbidden!”的解決辦法 WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置 訪問網(wǎng)站403錯(cuò)誤 Forbidden解決方法 如何從最大用戶并發(fā)數(shù)推算出系統(tǒng)最大用戶數(shù) Server Application Unavailable的解決辦法 報(bào)錯(cuò)“HTTP/1.1 400 Bad Request”的處理方法 Windows Server 2003的Web接口 http 500內(nèi)部服務(wù)器錯(cuò)誤的解決辦法(windows xp + IIS5.0)