基于PowerBuilder的Web頁面安全性設(shè)計
華北電力大學(xué)(河北保定071003)張少敏王保義
摘要:PowerBuilder是開發(fā)客戶機/服務(wù)器模式管理信息系統(tǒng)功能的有力工具。討論了用PowerBuilder開發(fā)Web應(yīng)用的2種方式(Plug—ins方式和Web.PB方式)及其特點和執(zhí)行過程,對2種Web應(yīng)用方式構(gòu)建的Web頁面的安全性進行了設(shè)計。
關(guān)鍵詞:PowerBuilder;Web;Web.PB;Plug—ins;安全性
近年來,隨著Internet的普及,世界范圍內(nèi)Internet/Intranet環(huán)境逐漸形成,Web正改變著企業(yè)應(yīng)用系統(tǒng)開發(fā)實施的方法。所有這一切都?xì)w功于Internet技術(shù),如TCP/IP、HTTP、HTML等的基本原則簡明、開放和可適應(yīng)性。它們的開放性的設(shè)計已成為全球研究和開發(fā)產(chǎn)品的成就。
Web是Internet上的一個服務(wù),可以用來把文檔很方便地鏈接在一起。通過這樣的鏈接,用戶能夠迅速確定所需文檔的位置,瀏覽時可從一個文檔跳轉(zhuǎn)到另一個文檔,同時可以訪問數(shù)據(jù)庫中的數(shù)據(jù)。Web的應(yīng)用具有以下優(yōu)點:
(1)開放分布體系,可以讓用戶透明地應(yīng)用由不同運行平臺組成的異構(gòu)型計算機資源;
(2)框架結(jié)構(gòu)能以不變應(yīng)萬變;
(3)可使開發(fā)人員按需要選擇各種各樣的軟件和工具實現(xiàn)各種應(yīng)用和服務(wù),并把注意力從用戶界面細(xì)節(jié)問題轉(zhuǎn)移到核心的問題上去。
總之,基于Web的應(yīng)用具有良好的開放性、資源共享、協(xié)議通用、互連方便,但同時也帶來了嚴(yán)重的安全性問題,因網(wǎng)絡(luò)用戶有對內(nèi)部系統(tǒng)的訪問權(quán)。最終用戶所能看到的是一個完整的在瀏覽器上表達(dá)的主頁,我們稱之為一個節(jié)點(Node)。在系統(tǒng)中同一節(jié)點上所有資源的權(quán)限域都有可能不同。有時網(wǎng)頁發(fā)布者并不希望自己的某些信息被所有人共享,而只提供給那些被授權(quán)的用戶,這是在開發(fā)基于Web的管理信息系統(tǒng)時,必然要遇到的問題。一種常見的解決方法是在網(wǎng)頁中設(shè)計認(rèn)證界面,提示用戶輸入用戶名、口令等項,用戶只有在輸入正確的提示項后,才能打開對應(yīng)的網(wǎng)頁,這樣對Web網(wǎng)頁起到保密作用。但提交的認(rèn)證數(shù)據(jù)如果在網(wǎng)絡(luò)中以明文形式傳輸,極易被竊聽、盜取,對安全性構(gòu)成威脅。本文對用PowerBuilder開發(fā)Web應(yīng)用時的Web頁面安全性進行了設(shè)計。
1PowerBuilder的特點
PowerBuilder是美國PowerSoft公司在1990年開發(fā)的分布式數(shù)據(jù)庫開發(fā)工具,是完全按照客戶機/服務(wù)器(Client/Server)結(jié)構(gòu)研制設(shè)計的,采用面向?qū)ο蠹夹g(shù)、圖形化的應(yīng)用開發(fā)環(huán)境,是數(shù)據(jù)庫前端開發(fā)工具。它為Oracle、Informax、Sybase等數(shù)據(jù)庫提供了公共的前端開發(fā)工具,不僅能適用于各種不同的數(shù)據(jù)庫管理系統(tǒng),而且還能給已有的數(shù)據(jù)庫資源帶來全新的窗口界面,其強大的接口驅(qū)動程序能夠和幾乎所有的數(shù)據(jù)庫實現(xiàn)無縫連接,并且高效地完成數(shù)據(jù)庫驅(qū)動。
PowerBuilder正在成為客戶機/服務(wù)器應(yīng)用開發(fā)的標(biāo)準(zhǔn)。相對其他任何客戶機/服務(wù)器開發(fā)環(huán)境,PowerBuilder使開發(fā)人員的工作更快,質(zhì)量更高,功能更強,成本更低。PowerBuilder為應(yīng)用開發(fā)提供了全面綜合性的支持,可以分別概括如下:
(1)事件驅(qū)動的應(yīng)用程序;
(2)功能強大的編程語言和函數(shù);
(3)面向?qū)ο蟮木幊蹋华?/P>
(4)跨平臺開發(fā);
(5)開放的數(shù)據(jù)庫連接系統(tǒng)。
隨著Web應(yīng)用的興起,PowerBuilder提供了其Internet/Intranet解決方案。企業(yè)內(nèi)部的管理信息系統(tǒng)是與計算機技術(shù)發(fā)展相對應(yīng)的。在PowerBuilder6.0/6.5版本中,有2個很大的改進,一是支持真正的分布式應(yīng)用(DistributedApplication)的開發(fā);二是用多種工具支持基于Internet的應(yīng)用。這種改進的目的在于能夠?qū)㈤_發(fā)者的精力都集中在業(yè)務(wù)邏輯的實現(xiàn)上,而不是花費大量時間去考慮和數(shù)據(jù)庫相關(guān)的問題。
2PowerBuilder中Web模塊的構(gòu)成
為了將PowerBuilder的應(yīng)用移植到Web上,PowerBuilder定義了一些功能模塊以實現(xiàn)相應(yīng)的功能,設(shè)計人員可以根據(jù)實際應(yīng)用的需求選取以下配置。
(1)Web.PB:當(dāng)業(yè)務(wù)邏輯和數(shù)據(jù)庫訪問要求集中處理時使用Web.PB,它是幾個可在Web服務(wù)器上被調(diào)用的可執(zhí)行應(yīng)用程序,相當(dāng)于分布式應(yīng)用中的客戶端應(yīng)用。該程序可以被Web服務(wù)器激活,用于向PowerBuilder的服務(wù)器應(yīng)用發(fā)出調(diào)用請求,是Web服務(wù)器和PowerBuilder應(yīng)用之間的關(guān)聯(lián)。
(2)Web.PBClassLibrary(Web.PB類庫):是創(chuàng)建PowerBuilder服務(wù)器應(yīng)用須引用的類庫,此庫中定義了5個定制的類用戶對象,這些用戶對象中封裝了創(chuàng)建HTML語法及事物管理所需的函數(shù)結(jié)構(gòu)和實例變量。這些函數(shù)結(jié)構(gòu)和實例變量用來創(chuàng)建HTML語法、管理客戶瀏覽器連接的狀態(tài)等。
(3)Web.PBWizard(HTML語法生成輔助工具):用來生成HTML頁面的語法,該HTML中嵌入了〈A〉或〈FORM〉元素,可用來激活PowerBuilder應(yīng)用中的相應(yīng)處理和完成數(shù)據(jù)采集。
(4)Plug—ins(插入件):PowerBuilder中提供了2種插入件,即WindowPlug—in和DataWindowPlug—in。WindowPlug—in可以在HTML頁面中嵌入并顯示PowerBuilder中Child類型的窗口對象。在被嵌入的窗口對象中可以放置數(shù)據(jù)窗口、樹狀瀏覽、Tab頁等豐富多彩的控制,豐富了HTML頁面的表現(xiàn)形式,當(dāng)業(yè)務(wù)邏輯和數(shù)據(jù)庫訪問可以在瀏覽器端處理時使用它。DataWindowPlug—in可以用來在HTML頁面中嵌入并顯示PSR文件。由于數(shù)據(jù)窗口具有豐富多彩的顯示風(fēng)格,因此DataWindowPlug—in帶給HTML頁面以豐富的數(shù)據(jù)表現(xiàn)形式,當(dāng)只需查詢已定義好的數(shù)據(jù)時使用它。
(5)Website(個人Web服務(wù)器):PowerBuilder中包含O''Reilly公司基于WindowsNT和Windows9X平臺的32位多線程個人Web服務(wù)器Website,該Web服務(wù)器提供了完整的Web服務(wù)創(chuàng)建、管理環(huán)境和安全機制。
3用Web.PB和用Plug—ins構(gòu)建的Web應(yīng)用的特點及執(zhí)行過程
3.1用Web.PB構(gòu)建Web應(yīng)用
3.1.1Web應(yīng)用的特點
(1)開發(fā)環(huán)境為PowerBuilder6.0,采用的是PowerBuilder6.0提供的應(yīng)用技術(shù)及PowerScripts編程,相當(dāng)于編寫分布式應(yīng)用環(huán)境下的服務(wù)器應(yīng)用;
(2)支持CGI、ISAPI、NSAPI、MSAPI等多種網(wǎng)關(guān)程序接口;
(3)支持PowerBuilder中數(shù)據(jù)窗口的引用;
(4)易于將以前編寫的PowerBuilder應(yīng)用移植到Web環(huán)境下;
(5)易于創(chuàng)建嵌入PowerBuilder應(yīng)用程序調(diào)用的HTML文件,PowerBuilder應(yīng)用服務(wù)器在運行環(huán)境下將根據(jù)用戶動作動態(tài)生成HTML語法,發(fā)布的是完全動態(tài)的信息;
(6)支持?jǐn)?shù)據(jù)庫連接,PowerBuilder能夠訪問到的數(shù)據(jù)都可以被瀏覽器用戶訪問,這使Web服務(wù)器與數(shù)據(jù)庫服務(wù)器通過PowerBuilder完整地結(jié)合起來,使用戶可以通過瀏覽器完成對數(shù)據(jù)庫數(shù)據(jù)的操縱;
(7)客戶端只需瀏覽器,是真正的“瘦”Client/Server結(jié)構(gòu)體系。
3.1.2Web應(yīng)用的執(zhí)行過程
(1)瀏覽器訪問Web服務(wù)器,向Web服務(wù)器提出請求,服務(wù)器給瀏覽器返回HTML文檔;
(2)如果HTML頁面中嵌入了通過〈A〉元素鏈接到Web.PB的超級鏈接,或HTML頁面中嵌入了通過〈FORM〉元素對Web.PB的調(diào)用,則Web服務(wù)器調(diào)用Web.PB建立與PowerBuilder應(yīng)用服務(wù)器的連接,向PowerBuilder應(yīng)用服務(wù)器提出請求,PowerBuilder應(yīng)用服務(wù)器處理請求,如有數(shù)據(jù)庫訪問的請求,則PowerBuilder應(yīng)用服務(wù)器訪問數(shù)據(jù)庫服務(wù)器;
(3)PowerBuilder應(yīng)用服務(wù)器將處理結(jié)果以HTML文檔格式返回到Web服務(wù)器;
(4)Web服務(wù)器將PowerBuilder應(yīng)用服務(wù)器的處理結(jié)果以HTML文檔格式發(fā)布給瀏覽器。
3.2用Plug—ins構(gòu)建Web應(yīng)用
Powerbuilder6.0中包含有2種Plug—ins和1種ActiveX,即PowerBuilderWindowPlug—in、PowerBuilderDataWindowPlug—in和PowerBuilderWindowActiveX。當(dāng)在HTML中嵌入WindowPlug—in或WindowActiveX,則在頁面中插入了PowerBuilder中定義的窗口,相當(dāng)于在瀏覽器客戶端運行了PowerBuilder應(yīng)用。如嵌入DataWindowPlug—in,則在頁面中插入了PowerBuilder中定義的PSR文件。
其調(diào)用過程如下:
(1)瀏覽器訪問Web服務(wù)器,
[1][2]下一頁