韓偉光
(黑龍江省衛(wèi)生信息統(tǒng)計(jì)中心,黑龍江 哈爾濱 150090)
網(wǎng)絡(luò)應(yīng)用軟件分為靜態(tài)網(wǎng)絡(luò)軟件,簡(jiǎn)單交互的網(wǎng)絡(luò)軟件以及復(fù)雜的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)三類。靜態(tài)網(wǎng)絡(luò)軟件只是為了同公眾共享和發(fā)布信息,不與用戶發(fā)生信息交流和互動(dòng)。第二類軟件可以使訪問(wèn)者同網(wǎng)站擁有者進(jìn)行交流,利用表單等來(lái)收集訪問(wèn)者對(duì)提供的產(chǎn)品和服務(wù)的反饋信息。復(fù)雜的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)可以處理復(fù)雜的商業(yè)交易活動(dòng),是實(shí)現(xiàn)電子商務(wù)的基礎(chǔ)。應(yīng)用軟件是建立在靜態(tài)或者動(dòng)態(tài)的個(gè)人網(wǎng)頁(yè)基礎(chǔ)上,可以方便地對(duì)應(yīng)用軟件的權(quán)限進(jìn)行劃分,根據(jù)需要設(shè)置訪問(wèn)者的訪問(wèn)權(quán)限。
應(yīng)用軟件的功能開(kāi)發(fā)很容易根據(jù)開(kāi)發(fā)者的意圖進(jìn)行分解,一般網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用軟件由Web服務(wù)器、功能服務(wù)器以及數(shù)據(jù)庫(kù)服務(wù)器三個(gè)部分組成。在Web服務(wù)器上用戶端通過(guò)browser向Web服務(wù)器提出查詢請(qǐng)求,Web服務(wù)器根據(jù)需要再向數(shù)據(jù)庫(kù)服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求;在功能服務(wù)器上完成響應(yīng)的業(yè)務(wù)處理或復(fù)雜計(jì)算任務(wù);數(shù)據(jù)庫(kù)服務(wù)器利用數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)對(duì)數(shù)據(jù)進(jìn)行操作。
產(chǎn)生網(wǎng)絡(luò)安全問(wèn)題的軟件層次,可以分成幾類:
操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議本身的缺陷所導(dǎo)致的安全問(wèn)題;通信過(guò)程所導(dǎo)致的安全問(wèn)題;應(yīng)用軟件層所導(dǎo)致的安全問(wèn)題。隨著網(wǎng)絡(luò)應(yīng)用環(huán)境越來(lái)越復(fù)雜。
HTTP協(xié)議和HTML語(yǔ)言最初主要用于靜態(tài)網(wǎng)頁(yè),隨著Web應(yīng)用的發(fā)展,動(dòng)態(tài)網(wǎng)頁(yè)在互聯(lián)網(wǎng)中成為了主流,服務(wù)器端和客戶端程序功能被擴(kuò)充,特別是在電子商務(wù)應(yīng)用中,要求通信雙方能夠互相識(shí)別,相應(yīng)地引進(jìn)了許多新的技術(shù)。
如果服務(wù)器端使用了客戶輸入來(lái)構(gòu)建操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句,而又沒(méi)有對(duì)客戶端的輸入進(jìn)行合法性驗(yàn)證,惡意用戶可能提交一段數(shù)據(jù)庫(kù)查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),甚至破壞數(shù)據(jù)庫(kù)的內(nèi)容,即發(fā)生了SQL注入(SQL Inject ion)。SQL注入可以從正常的80端口訪問(wèn),而且表面看起來(lái)跟一般的Web頁(yè)面訪問(wèn)沒(méi)什么區(qū)別,所以很多的防火墻都不會(huì)對(duì)SQL注入發(fā)出警報(bào)。
跨站點(diǎn)腳本(XSS,Cross Site Scripting)
相當(dāng)多的網(wǎng)站必須以外來(lái)的輸入構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè),比如BBS、以網(wǎng)頁(yè)形式呈現(xiàn)的新聞組、拍賣網(wǎng)站等,攻擊者可以在BBS上發(fā)布一條消息,在發(fā)送給受害者的電子郵件中嵌入HTML文本,并且其中嵌入惡意的客戶端腳本代碼。
跨站點(diǎn)追蹤(XST,Cross Site Tracing)
前面提到,跨站點(diǎn)腳本攻擊常常利用站點(diǎn)“返回請(qǐng)求信息”這個(gè)特性,跨站點(diǎn)追蹤可以看成是這種情況的衍生物,它利用了HTTP協(xié)議族中的TRACE命令。T RACE要求服務(wù)器回送客戶端通過(guò)HTTP請(qǐng)求發(fā)送到服務(wù)器的信息,通常用來(lái)調(diào)試和連接狀況分析。所以應(yīng)當(dāng)在服務(wù)器投入運(yùn)行以后,及時(shí)關(guān)閉T RACE響應(yīng)。
會(huì)話疊置(Session Riding)
正常情況下服務(wù)器與客戶瀏覽器之間會(huì)話時(shí),Session ID在每次客戶瀏覽器向服務(wù)器發(fā)出請(qǐng)求時(shí),自動(dòng)隨之送到服務(wù)器。攻擊者利用跨站點(diǎn)腳本能夠竊取保存在cookie中的Session ID,并取代原來(lái)的用戶與服務(wù)器會(huì)話,把合法用戶被拒絕在會(huì)話之外,這種攻擊稱為會(huì)話劫持(Session Hijacking)。
3.1.1 意圖和動(dòng)機(jī)
HA(high availability pat tern)模式的意圖是定義一種一對(duì)一或一對(duì)多的關(guān)系,監(jiān)控對(duì)方的狀態(tài),當(dāng)一個(gè)對(duì)象出現(xiàn)失效,激活與之相對(duì)應(yīng)的另一個(gè)對(duì)象。
網(wǎng)絡(luò)信息系統(tǒng)的可用性通常在兩種情況下會(huì)受到影響,一種是系統(tǒng)宕機(jī)、錯(cuò)誤操作和管理引起的異常失敗;另一種是由于系統(tǒng)維護(hù)和升級(jí),需要安裝新的硬件或軟件而正常關(guān)機(jī)。高可靠性軟件必須為這兩種情況提供不間斷的系統(tǒng)服務(wù)。
除了運(yùn)行高可靠性軟件來(lái)構(gòu)成高可靠性系統(tǒng)之外,在網(wǎng)絡(luò)應(yīng)用軟件本身之中加入高可靠性的一些性能也能使網(wǎng)絡(luò)軟件自動(dòng)檢測(cè)系統(tǒng)的運(yùn)行狀態(tài),在一臺(tái)服務(wù)器出現(xiàn)故障的情況下,自動(dòng)地把設(shè)定的服務(wù)轉(zhuǎn)到另一臺(tái)服務(wù)器上,這樣就不需要購(gòu)買或者重新開(kāi)發(fā)一套HA軟件。
3.1.2 系統(tǒng)結(jié)構(gòu)
HA模式的關(guān)鍵思想就是引入一個(gè)HAD etect的抽象類來(lái)管理網(wǎng)絡(luò)應(yīng)用的運(yùn)行狀態(tài)。
3.1.3 安全結(jié)構(gòu)系統(tǒng)的實(shí)現(xiàn)
每一個(gè)連接構(gòu)成一個(gè)相關(guān)的HAD etect抽象類.首先定義這個(gè)類及Interfaces類。其中 Interfaces類中的友類 Heartbeat、Takeover和Service Management的定義和實(shí)現(xiàn),這里不作祥述.它們包括:判斷接口的類型、使用socket管理連接、服務(wù)配置管理、啟動(dòng)與停止管理等。
在整個(gè)實(shí)現(xiàn)過(guò)程中核心是一個(gè)通信連接的建立,用以檢測(cè)網(wǎng)絡(luò)應(yīng)用狀態(tài)的改變,在這個(gè)通信過(guò)程中完成失效檢測(cè)和業(yè)務(wù)接管。根據(jù)這個(gè)狀態(tài)的改變調(diào)用Interfaces類中不同友類中的相應(yīng)方法,系統(tǒng)通信連接主要有6個(gè)狀態(tài)。
3.1.4 安全結(jié)構(gòu)系統(tǒng)的應(yīng)用
將所設(shè)計(jì)的HA軟件模式,應(yīng)用到一個(gè)實(shí)際的網(wǎng)絡(luò)認(rèn)證計(jì)費(fèi)系統(tǒng)中。對(duì)于計(jì)費(fèi)系統(tǒng)來(lái)說(shuō),保證它的穩(wěn)定可靠運(yùn)行是至關(guān)重要的,一旦系統(tǒng)某個(gè)節(jié)點(diǎn)出錯(cuò),將造成無(wú)法挽回的損失。計(jì)費(fèi)系統(tǒng)運(yùn)行的基本流程是:用戶登錄,接入服務(wù)器將登錄信息送到認(rèn)證服務(wù)器Radius Server上進(jìn)行認(rèn)證,如果認(rèn)證通過(guò),則授權(quán)用戶,用戶開(kāi)始使用網(wǎng)絡(luò)。同時(shí)實(shí)時(shí)計(jì)費(fèi)系統(tǒng)為用戶的流量或時(shí)間進(jìn)行計(jì)費(fèi) (取決于不同的資費(fèi)策略),并寫入數(shù)據(jù)庫(kù)中,直到用戶斷網(wǎng)。在這個(gè)系統(tǒng)中,需要考慮高可用性的環(huán)節(jié)主要有3個(gè):認(rèn)證服務(wù)器、計(jì)費(fèi)服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。
網(wǎng)絡(luò)應(yīng)用軟件是電子商務(wù)的基本成分,一個(gè)成功的網(wǎng)絡(luò)軟件的設(shè)計(jì)和實(shí)行需要構(gòu)筑一個(gè)高可用性的網(wǎng)絡(luò)環(huán)境,還必須有高可用性的網(wǎng)絡(luò)。網(wǎng)絡(luò)的可用性是系統(tǒng)密不可分的一個(gè)部分,這必須對(duì)網(wǎng)絡(luò)管理的高可用性進(jìn)行深入研究,使高可用性設(shè)計(jì)模式得到更廣泛的應(yīng)用。
[1]李冶文,楊正球,亓峰等.網(wǎng)管環(huán)境下連接高可用性軟件總線的研究與構(gòu)造[J].電子學(xué)報(bào),2001,29(10):1332-1336.
[2]Erich Gamma,Richard Helm,Ralph Johnson著,李英軍等譯.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ) [M].北京:機(jī)械工業(yè)出版社,2000.