歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

授權web服務器進行安全的數據庫訪問

允許Web用戶訪問數據庫是一項很精細的工作,需要認真的考慮,不能馬虎從事。      TechRepublic會員E Spigle 最近在TechRepublic Technical 的Q&A forum上提出了下面這個問題:     我們正在進行一項工作,把一個很老的FoXPro系統轉換成我所工作的公司裡的MS SQL / VB系統。我們已經在內部廣泛地使用了SQL數據庫。它目前位於我們局域網的防火牆之後,只能支持內部使用。可是我們的一部分轉換程序帶來了一些Web聯機應用。現在我們就面臨一個兩難的局面,我們必須為了讓Web用戶和局域網的用戶能夠同時訪問同一個數據庫找到一個好的解決方法。目前我們的IIS 6.0 Web server在DMZ。如何能夠讓web服務器為網絡應用提供數據庫訪問呢?     問題分析  這是個很有意思的問題,第一眼看起來很簡單,但是當你再對它進行深入考慮後,你就會發現它的復雜之處。任何時候,當你想要使數據庫具有互聯網訪問能力時,都有很多問題需要考慮。我首先會考慮的問題就是“我們處理的是什麼類型的數據?”和“信息的敏感程度如何?”    我會考慮這兩個問題的原因是我需要確定這些數據能夠承受多大的風險。如果不能夠承擔任何風險,我可能會投入很多的資源和精力來保證我的數據盡可能不受侵害。但是,如果可以承擔一定的風險,我會謹慎從事,但不會采用極端手段。比如,如果數據是一個病人的醫療歷史信息,我就會不遺余力地保護數據安全,這就意味著不通過IIS連接,不使用SQL Server。    在我詳細說明以前,我要聲明,我對微軟並沒有偏見。我僅僅是要避免風險。微軟的產品能夠被很好地保護,並且在上述的情況下工作良好。但是,由於它的流行性,微軟的產品更容易成為病毒,蠕蟲、黑客和諸如此類攻擊的靶子。在對於風險承受能力比較低的環境裡避免使用微軟的產品,這樣就能夠減少我的麻煩。    而且,根據數據所能夠承擔的風險程度,我將決定是否需要在web服務器和數據庫之間進行加密,以及數據在數據庫裡是否需要加密。如果我們希望能夠獲得最高的安全性,我就會選擇使用內置的或者第三方的加密軟件。如果數據對於安全性要求不是那麼高,我就會選擇根本不加密,或者選擇低級別一些的加密方法。    最後,我還需要決定使用什麼樣的連接來訪問數據庫。如果加密是必須的,或者/而且訪問是通過客戶服務器軟件來進行(如同問題裡描述的那樣),那麼我就需要使用VPN和一個應用層的代理。而且,我可能會考慮在我的Web服務器和數據庫之間,設置一個應用服務器。    對於上面這些問題的答案幫助我設計數據庫訪問的環境。    搭建系統  我假設在E Spigle問題中所描述的數據的敏感程度不是非常高,所以使用IIS和SQL Server是可以被接受的。具體如圖A所示:    

圖A:網絡規劃

  

  如圖A所示的網絡通信中,80端口的HTTP或者1443只被允許到達Web服務器。然後Web服務器通過1433端口,通過TCP協議同SQL服務器進行通信。另一種方法,是使用微軟的ISA服務器作為轉換代理,並允許它控制與SQL服務器的通信。    無論你選擇哪一種,都有一系列問題需要考慮,以確保你的SQL Server數據庫的安全。這些問題在網上可以查到,它們包括了比如保護你的Windows服務器,保護IIS,保護SQL Server,處理Web服務器同SQL server的通信問題,這包含了認證、協議等等方面的問題。幸運的是微軟在MBSA(Microsoft Baseline Security Analyzer)提供了一些幫助。    最後,你的開發人員和數據庫管理員還需要把一系列標准和程序融合到應用代碼和數據庫中,以把安全風險降到最低。    最佳方案和可接受的風險  本篇文章講述了在一個看起來很簡單的問題背後的一些復雜之處,“怎樣才能最好地讓網絡應用通過web服務器訪問數據庫?”也許還有資金的壓力,但最終,會歸結為在可承受的風險程度和投入之間的平衡問題。這是每一個面對這個問題的人都需要考慮的。




 

 



Copyright © Linux教程網 All Rights Reserved