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