任毅+虞洋+蔡劍波

【摘 要】提出了一種辦公自動化管理系統的安全性設計方法,采用了分層結構的設計理念,從數據封裝、日志記錄、數據加密等方面加強了安全性設計。
【Abstract】In this paper, a security design for office automation management system is proposed. The design is hierarchical and will reinforce the security of the system from data encapsulation, log record and data encryption.
【關鍵詞】自動化;管理系統;安全性
【Keywords】automation ;management system; security design
【中圖分類號】G25 【文獻標志碼】A 【文章編號】1673-1069(2017)06-0156-02
1 引言
隨著Internet的發展,很多企業都用辦公自動化網站逐步取代C/S模式的OA軟件。辦公自動化網站通過收集員工個人信息,發布工作項目和進展,報表自動生成和導出,工作統計和分析等功能,輔助管理者實現企業內部的辦公自動化管理工作。但是這些系統也隨時可能面臨來自網絡的攻擊。
WEB攻擊有很多種,一部分可以使用ASP.NET代碼進行防范的,但是其他的攻擊方式還是可以產生破壞的,如直接攻擊服務器。
辦公自動化網站必須能夠具有極強的安全性,保證企業內部工作的高效和有序。本文以基于ASP.NET的辦公自動化管理系統為例,較為詳細地介紹了網頁的安全性設計方法,主要包括:①數據封裝:采用分層結構設計網頁,將數據封裝在層次內,保證敏感數據不被惡意程序捕獲;②密碼加密:對用戶密碼進行加密處理后再存入數據庫,保證數據安全,防止意外獲取管理員權限的用戶直接竊取用戶密碼,減小密碼泄露幾率;③日志記錄:在程序中的重要執行位置記錄日志,細化網頁部署后的需記錄信息,便于網頁的維護。
2 ASP.NET特點
當前很多管理系統是基于ASP和腳本語言,將動態網頁和數據庫結合。但是由于ASP本身的局限性使得系統有一些不可克服的缺陷,而采取了ASP.NET技術的系統性能上有了很大的改善,其主要表現在以下幾方面[1]: ①ASP.NET頁面只需要一次編譯后不需要重新編譯,直到該頁面被修改或Web應用程序重新啟動。這使得在多次訪問時速度有了極大的提升。②ASP.NET通過ADO.NET[2]提供的DataGrid等數據庫元件可以直接和數據庫聯系。③ASP.NET支持應用程序的實時更新。管理員不必關掉網絡服務器或者甚至不用停止應用程序的運行就可以更新應用文件。應用程序文件永遠不會被加鎖,因此甚至在程序運行時文件就可以被覆蓋。當文件更新后,系統會溫和地轉換到新的版本。④ASP.NET采取"code-behind"方式編寫代碼使得代碼更易于編寫,結構更清晰,降低了系統的開發與維護的復雜度和費用。
3 系統概述
3.1功能結構
該辦公自動化管理系統數據庫采用Microsoft SQL Server 2005[3]。圖1給出系統的功能結構圖。其工作流程為:通過登錄判斷用戶的權限、所在組等信息,支持用戶進行錄入、修改、刪除和查詢工作,并將工作以Excel文件的形式導出。本系統還提供了對工作數據進行統計分析的功能,可將工作占用時間直觀的畫成餅圖展示給用戶或管理者。通過功能結構圖可以看出,本系統的功能都是基于有效用戶登錄的,因此必須對登錄用戶進行身份驗證,防止黑客侵入。同時必須假想用戶都是惡意的,對用戶的所有輸入進行判斷,提升軟件安全性。
3.2 系統安全性要求
考慮到本系統的應用,網頁應該考慮如下安全性要求:①拒絕非法用戶登陸;②對用戶的密碼進行妥善保護;③對用戶非法輸入進行辨析和提示;④軟件結構清晰,不易被惡意代碼攻擊;⑤具有系統日志功能,方便維護。
4 系統安全性設計
4.1分層設計
為了使程序結構清晰,便于添加功能、修改和維護,系統采用了分層結構的設計理念。所謂分層結構是指按照實現的不同功能將系統的代碼文件分層,實現相同或相近功能的代碼位于同一層。如果需要對某些特定功能修改,只需在響應的層次內進行修改即可,使用分層結構編寫代碼使系統的功能結構更加清晰,同時將數據封裝在本層內,不易被惡意代碼攻擊[4]。
本辦公自動化管理系統的主要實現分為四層,分別為數據訪問層、數據接口層、業務邏輯層和界面顯示層。
其中數據訪問層完成了所有與數據庫交互的工作;數據接口層則實現對數據訪問層的輔助功能和包裝,例如構造SQL語句;業務邏輯層整個系統的核心,是系統中各種對象的類的具體實現,實現了管理系統的邏輯功能;界面顯示層位于系統的最上層,實現了系統各頁面的顯示。各層次之間相互獨立,只提供數據訪問接口,保證了數據的安全性。
在編寫代碼時,按照先底層后上層的原則,首先實現數據訪問功能,然后編寫邏輯實現需要的各類,最后編寫頁面顯示層。
4.2 數據加密設計
當前,由于網絡上部分的密碼以明文方式顯示,導致大量網民受到隱私泄露的威脅。由于沒有進行密碼加密設計,可以導致眾多用戶信息泄露,帶來極為惡劣的影響。
本系統采用XOR方式對數據進行加密,其原理為:當一個二進制數A和另一個二進制數B進行異或運算會生成另一個二進制數C,如果再將C和B進行異或運算,則C又會還原成A。因此只需要確定一串密鑰B,即可將數據A轉化為加密后的結果C,并將C存入數據庫中。如果需要解密數據,只需要將C再與密鑰B進行異或運算即可。這里給出加密方法的示例代碼。
Public static string Encrypt(string strSrc, str strKey)
{
Byte[] bSrc = (new UnicodeEncoding()).GetBytes(strSrc);
Byte[] bKey = (new UnicodeEncoding()).GetBytes(strKey);
For (int i=0; i { For (int j=0; j { bSrc[i] = Convert.ToByte(bSrc[i]^bKey[j]); { } Return (new UnicodeEncoding()).GetString(bSrc).TrimEnd(‘\0); } 之所以需要利用字符串的低位字節進行異或操作,這是因為Unicode編碼的非中文字符(數字或字母)的高位字節為0,而某些中文字符與0異或運算后,可能產生SQL Server不能存儲的亂碼字符串,造成存儲失敗。 解密方法是加密方法的逆操作,只需要重新利用加密后和原來的密鑰執行相同的疑惑操作即可,因此解密方法直接調用加密方法即可。 4.3 日志設計 成熟網頁的一個重要標志就是具備優良的日志記錄功能。出于安全性和實時性的要求,部署好的網站通常是不允許進行實時調試的,因此需要將網頁實時運行中的重要信息記錄下來,作為網頁維護的重要依據。本系統采用了Log4Net控件,該控件可以按照不同等級將重要信息記錄,而且具有調用簡便的特點。利用這一控件,可以很好的實現網頁運行日志的記錄功能。 5 結論 基于ASP.NET的辦公自動化管理系統對安全性要求較高,本文從數據封裝、數據加密、日志記錄等方面敘述了該系統的安全性設計,通過對網站進行分層設計,記錄系統運行日志和加密重要數據等手段,可以較大的提升系統的安全性,并為其他基于ASP.NET的網頁程序提供了增強安全性的經驗。 【參考文獻】 【1】Scott Worley. ASP.NET技術內幕[M].王文龍, 劉湘寧,譯.人民郵電出版社,2002. 【2】Sanjeev Rohilla, Senthil Nathan, Surbhi Malhotra. ADO.NET專業項目實例開發[M].陳君, 王寶良,譯.中國水利水電出版社,2003. 【3】劉乃麗.精通ASP.NET2.0+SQL Server 2005項目開發[M].人民郵電出版社,2007. 【4】德瑞工作室.黑客入侵網絡攻防修煉[M]. 電子工業出版社,2008.