劉凡
【摘要】由于互聯網的開放性,應用系統的安全問題也越來越被重視。本文從分析J2EE體系結構入手,探討在系統設計和開發過程中,軟件研發人員應注意哪些方面的安全問題,并在系統開發時采取何種安全措施,保證應用系統的安全性。
【關鍵詞】J2EE;安全性;體系結構
【中圖分類號】TP309.2 【文獻標識碼】A 【文章編號】1672-5158(2013)04-0124-01
1、引言
以JAVA平臺為核心的J2EE(Java 2 Platform Enterprise Edition】技術因為其”編寫一次,隨處運行”的特性,方便存取數據庫的JDBC(Java DataBase Conneetivity)技術以及能夠在Internet應用中保護數據的安全模式,對Java Servlet API,JSP(Java Server Pages)和XML(Extensible MarkupLanguage)技術的全面支持等等,被廣泛應用于各種B/S架構的應用系統建設中。
由于互聯網的開放性,基于B/S架構的應用系統的攻擊易于受到入侵和攻擊,造成篡改系統頁面,竊取系統數據或者植入惡意代碼,致使應用系統無法正常運行的危害。
2、J2EE技術的體系結構
J2EE技術的體系結構如圖2所示:
J2EE技術的體系結構分成四個部分:客戶層,Web服務層,應用服務層,數據服務層。
從J2EE技術的體系結構分析而看用戶對應用系統的訪問分為四個處理步驟完成,數據在客戶層、Web服務層、應用服務層、數據服務層四層之間進行傳遞和處理,其中客戶端通過網絡將數據傳遞至Web服務器,然后由Servlet引擎和JSP引擎對傳遞的數據進行解釋和分析,把用戶的輸入發送給運行在業務服務層上的EJB組件來進行進一步的業務處理,最后通過JDBC與數據服務層的數據庫進行數據交換,并且將處理的結果返回給用戶。Web服務層組件和業務服務層組件都運行在J2EE服務器上。
因此,應用系統的安全需要考慮以下幾個方面:數據傳輸的安全,Web服務器的安全,腳本編程的安全。
3、基于J2EE技術的應用系統存在的安全問題及安全措施
3.1 數據傳輸安全
在對J2EE技術的體系結構分析時,我們知道用戶與Web服務器的通信,使用的是各種網絡傳輸協議來傳輸數據。但是,由于網絡傳輸的公共性,數據在傳輸過程中可能被攻擊者中途截獲或篡改,給公司帶來風險和損失,因此應用系統的安全性必須考慮網絡數據傳輸的安全,而采用SSL(Secure Sockets Layer)協議是目前比較安全有效的處理方法。
SSL是一種保證網絡上的兩個節點進行安全通信的協議,使用加密技術實現在網絡上會話雙方數據的安全傳遞。其基本原理是:數據從一端發送到另一端時,發送者先對數據加密,然后再把它發送給接受者。這樣,在網絡上傳輸的是經過加密的數據。如果有攻擊者在網絡上非法截獲了這批數據,由于沒有解密的秘鑰,就無法獲得真正的原始數據。接受者接到加密的數據后,先對數據解密,然后再進行處理,從而保證了數據傳輸中的安全性。
3.2 Web服務器的安全
Web服務器的安全問題主要是防范DoS攻擊,其目的是使計算機或網絡無法提供正常的服務。
DoS攻擊主要基于TCP/IP協議通過網絡進行攻擊,因此首先需要網絡管理員在網絡上采取大量的預防措施,防止DoS攻擊帶來的服務不能效應。而對于J2EE平臺來說,Web服務器的安全配置也是我們防止DoS攻擊的一道防線,即可防范黑客用戶的惡意攻擊,也可防止用戶無限制開啟多個并發線程,使得系統很快達到HTTP的最大連接數,堵塞網絡,導致系統無法正常運行。
3.3 編程的安全
3.3.1 用戶輸入的安全
用戶輸入的安全主要是指SQL(Structured Query Language)注入,所謂sQL注入,就是通過把sQL命令插入到Web表單或頁面請求的查詢字符串,欺騙服務器執行惡意的sQL命令,達到竊取系統數據或者非法入侵系統的目的。
預防此類攻擊的安全措施如下:
1.對用戶的輸入進行校驗,限制用戶輸入長度;對特殊符號進行轉換或者屏蔽輸入等。
2.使用參數化的sql或者直接使用存儲過程進行數據查詢存取。
3.不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接。
3.3.2 頁面的訪問控制
通常,用戶須輸入了正確的用戶名和口令成功登錄應用系統,才能訪問普通用戶不能訪問的包含公司重要數據的頁面。然而如果軟件開發人員在編程時考慮不周全,對所有的頁面不進行適當的訪問控制,非法用戶就可直接在瀏覽器地址欄中輸入重要頁面的URL來訪問該頁面,繞過了登錄界面直接進入應用系統,獲取系統數據,給系統安全造成了威脅。
解決這個問題需要利用JAVA提供的過濾器機制以及Session對象。在用戶登錄成功后,就把用戶名存入會話的Session變量中,然后通過過濾器將用戶需要訪問的資源進行攔截。這樣,用戶訪問系統頁面時必須先進行驗證,在過濾器中我們先讀取Session變量,判斷用戶是否存在,不存在則證明用戶還沒有登錄,將用戶請求重定向到登錄頁面。
4、結束語
在IT技術高速發展的今天,應用系統的安全已變得至關重要。保證應用系統的安全性,抵御非法用戶的入侵和攻擊,系統設計與開發人員必須了解和掌握所使用的開發平臺的基礎架構,熟悉網絡傳輸協議,采用適當的安全的網絡傳輸協議和編程規范,才能保證應用系統的安全,確保其穩定運行。