摘要:本文對基于B/S結構MIS系統的安全性問題從操作系統、WEB服務器、數據庫和WEB應用程序等方面進行了分析,并給出了相應提高安全性的方法和建議。
關鍵詞:B6結構:MIS系統;WEB應用程序
中圖分類號:TP393.08
文獻標識碼:A
文章編號:1002-2422(2010)06-0121-02
1 B/S結構信息系統的安全性
基于B/S結構的信息系統主要由瀏覽器,WEB服務器,數據庫服務器組成,如圖1所示。

基于B/S結構信息系統的安全性主要體現在如下幾個方面。
1.1 操作系統的安全
操作系統安全是基礎,是基于B/S結構的管理信息系統最基本的,也是最重要的安全保證。試想一下,如果連WEB服務器或數據庫服務器的操作系統的安全都出現了問題,那么整個信息系統還有什么安全性可言。采用如下措施,將有助于提高操作系統的安全性。
(1)進行合理的域規劃。通常,為了便于對網絡用戶進行管理,將其劃分成若干域和組,不同域之間的用戶為了進行資源共享需要建立許多相互信任關系,為了資源的安全,要進行合理的域規劃。特別要注意系統文件和WEB應用程序所在的目錄,即使是對系統管理員,系統文件和WEB應用程序所在目錄通常也只能賦予“只讀”的權限,且不設共享。另外,要注意經常檢查關鍵目錄的權限,以防出現權限賦予得過大的情況,從而降低系統的安全性。
(2)使用審計系統檢查系統。系統管理員可以使用審計系統檢查系統是否正遭受攻擊或者有可能遭受攻擊。使用審計系統首先要在域用戶管理器中設置好審核規則,其次要經常查看事件日志,特別是要重點關注失敗的操作和異常的操作。要充分利用系統策略編輯器中的一些設置。例如,設置不允許從身份驗證對話框中關機,不顯示上次登錄的用戶名、不成功的身份驗證最大數以及身份驗證的最大時間限制等。還有就是系統管理員應該注意定時更換系統管理員的口令,以防口令泄露。
(3)盡量關閉WEB服務器、數據庫服務器上的一些不必要的網絡服務,以免給攻擊者造成攻擊的機會。WEB服務器、數據庫服務器和其他文件服務器最好專機專用。
1.2 WEB服務器的安全
為了提高WEB服務器的安全,應該在WEB服務器上為WEB應用程序設置正確的虛擬路徑和訪問權限,虛擬路徑能有效地隱藏資源所在,正確的權限配置能有效防止非法操作。NTFS權限是WEB服務器安全性的基礎,定義了一個或一組用戶訪問文件和目錄的不同級別。系統管理員需要針對不同的資源設置不同的HS權限和NTFS權限以及準確設置HS用戶的驗證方式,系統管理員可以根據實際情況選擇基本驗證方式或者客戶證書映射驗證方式。
可以通過配置WEB服務器的權限來限制所有用戶查看、運行和操作ASP頁的方式。WEB服務器權限應用于所有用戶,并且不區分用戶帳號的類型。對于要運行ASP程序的用戶,在設置WEB服務器權限時,須遵循下列原則:
(1)對包含.ASP文件的虛擬目錄允許“讀”或“腳本”權限。
(2)對.ASP文件和其他包含腳本的文件(如.htm文件等)所在的虛目錄允許“讀”和“腳本”權限。
(3)對包含ASP文件和其他需要“執行”權限才能運行的文件(如.EXE和.DLL文件等)的虛目錄允許“讀”和“執行”權限。
1.3 數據庫安全
數據庫系統的安全是管理信息系統安全的核心,為了提高數據庫系統安全建議采取如下措施:
(1)給數據庫用戶進行恰當的定義和分類。
(2)區別在系統中處于不同層次或不同模塊的表。
(3)修改內置用戶信息。有些數據庫在安裝時設置了幾個內置用戶,且這幾個內置用戶具有很高的權限。比如Oracle,所以在安裝好數據庫系統后一定要記得將這幾個內置用戶的口令改掉,否則,有過使用該數據庫系統經驗的用戶從客戶端和服務器端都可以進入數據庫系統訪問相關數據,造成數據泄密或損壞。
(4)使用觸發器功能自動拒絕某些非法操作和訪問。例如,對某些重要數據表設定在休息時間(比如周末,假日或非工作時間)禁止讀取,修改等操作。
(5)數據庫管理員建立一套完整、科學的數據庫的各份機制,對數據庫進行備份。
1.4 WEB應用程序安全
WEB應用程序安全是基于B/S結構MIS系統安全的關鍵部分,WEB應用程序與傳統的C/S結構的應用程序不同,傳統的c6結構的應用程序只有一個入口,在整個程序入口進行安全控制就可以保障整個應用程序的安全。而在基于B/S結構的MIS系統中,一個一個網頁都是獨立的,用戶可以在瀏覽器URL中輸入不同路徑來跳過系統設置的安全控制網頁直接訪問其它相關網頁,因此,如果不進行控制,那么登錄界面的用戶驗證就形同虛設。于是有人提出,要解決這個問題,可以在登錄界面中設置變量,如果通過驗證賦值1,否則賦值為0。對于菜單權限驗證也可以采用同樣的方法。上述解決方案仍然存在漏洞,如果一個用戶以合法身份進入模塊主頁面,并且進入其所擁有權限的菜單。那么一切驗證都已通過,標記變量session的值都是1,這時如果該用戶在URL中直接輸入其所沒有權限的頁面的地址,則該頁面中關于標記變量session值的檢驗都能通過,也就是說用戶能進入其沒有權限的菜單,這就出現了嚴重的安全問題。要解決這個問題,可以給模塊中的每個菜單編寫唯一的代碼,并在數據庫中建立一個專用數據表,在數據表中存放菜單的代碼,名稱以及進入該菜單后的網頁URL地址。在菜單驗證權限表中進行驗證,如果通過權限驗證,就設標記變量session的值為該菜單的代碼,并轉到該菜單代碼記錄中的頁面地址。這樣就能夠有效防止合法用戶進入非授權的菜單的情況。
在web應用程序中應該采用輸入驗證。在設計時,正確的輸入驗證是防御目前應用程序攻擊的最有效方法之一。正確的輸入驗證是防止xss、SQL注入、緩沖區溢出和其它輸入攻擊的有效對策。無論輸入是來自服務、共享文件、用戶還是數據庫,只要其來源不在可信任的范圍之內,就假定所有輸入都是惡意的,就應對輸入進行驗證,還應重點考慮SQL注入式攻擊,對于SQL注入式攻擊的檢測,很多資料上有詳細介紹,這里不再累述。
另外,要避免以明文形式存儲以及傳輸機密,如數據庫連接字符串或帳戶憑據等。最好通過加密確保這些項目的安全,然后限制對包含加密數據的注冊表項、文件或表的訪問權限。在使用加密方法時:
(1)不要試圖使用自己編寫的加密方法,因為自己編寫的加密算法往往比較簡單,可以采用目前行業認可的,比較通用的安全性比較高的加密算法,如MD5等,同時選擇合適的密鑰長度。
(2)將未加密數據存儲在算法附近。向算法傳遞文本時,除非必須使用,否則盡量不要獲取該數據,并要求盡可能少的修改存儲該數據。
2 結束語
對基于B/S結構MIS系統的安全性問題從操作系統、WEB服務器、數據庫和WEB應用程序等方面進行了分析,并重點對數據庫和WEB應用程序安全給出了相應提高安全性的方法和建議。
參考文獻
[1]裴容生,楊勇.WEB應用程序安全控制的實現[J].成都:成都大學學報(自然科學版),2006,25(3).
[2]竇永富,崔為紅.Web應用程序安全設計探析[J].北京:計算機系統應用,2006(9).
[3]陽威特.WEB應用程序的安全維護[J].北京:計算機應用,2-000,20(5).
[4]竇麗華,蔣慶華,李晨暉.基于CDE的信息系統安全研究[J].北京:北京理工大學學報,2002,22(3).
[5][作者不詳].開發WEB應用程序的可靠性和安全性探討[J].北京:計算機工程與應用,2001(14).