[摘 要]隨著網絡信息化技術的發展,許多管理信息系統都由原來的基于Windows的C/S架構轉向基于Web的B/S架構。使用互聯網的管理信息系統時客戶端操作方便,不需要額外增加軟、硬件配置。但是,數據的安全性成為考驗系統的關鍵。
[關鍵詞] 網絡 管理系統 數據 安全性
一、引言
在編寫基于WEB的應用程序時必須要考慮系統的安全性,主要是指用戶的登錄密碼,盡管現在可以使用很多方法進行身份驗證,但多數用戶仍然通過在鍵盤上結合輸入用戶名和密碼來登錄自己的計算機或網站。用戶在注冊過程中,往往會選擇簡單易記住的密碼,例如自己的英文姓名、所讀的中學名稱、家人的姓名等。對于攻擊者來說,簡短的密碼相對容易破解。攻擊者可以用以下的方法來破解用戶的密碼。
二、密碼安全技術
1.對稱加密算法
對稱加密指加密和解密使用相同的密鑰的加密算法。對稱加密的優點在于加密和解密的高速度和使用長密鑰的難破解性,特別使用于對較大的數據流執行加密轉換。由于持有密鑰的任意一方都可以使用該密鑰的解密數據,因此必須保護密鑰不被未經授權的用戶得到。
在Microsoft .NET Framework中所有的對稱算法實現類都是繼承于抽象基類(System.Security.Cryptography.SymmetricAlgorithm),訪類表示所有對稱算法的實現都必須從中繼承的抽象基類。
2.非對稱加密算法
非對稱加密指加密和解密使用不同密鑰的加密算法,也稱為公鑰加密。公鑰加密使用一個必須對未經授權的用戶保密的私鑰和一個可以對任何人公開的公鑰。公鑰和私鑰都在數學上相關聯;用公鑰加密的數據只能用私鑰解密,而用私鑰簽名的數據只能用公鑰驗證。公鑰可以提供給任何人;公鑰用于對要發送到私鑰持有者的數據進行加密。兩個密鑰對于通訊會話都是唯一的。因為非對稱加密是需要用一個密鑰加密數據而需要用另一個密鑰來解密數據。它只可以加密少量數據。
在Microsoft .NET Framework中所有的非對稱算法實現類都是繼承于抽象基類(System.Security.Crytography.AsymmetricAlgorithm),該類表示所有不對稱算法的顯示都必須從中繼承的抽象基類。算法實現類提供了選定算法的具體實現。
三、防止SQL注入
在開發Web應用程序時,如果后臺數據庫采用Access或SQL Server數據庫,則會有一種常見的安全性錯誤,即SQL漏洞注入錯誤,因此可能引發利用這種錯誤進行所謂的“SQL注入式攻擊”。要防范SQL注入式攻擊,應該注意以下幾點:
#8226; 檢查輸入的SQL語句的內容,如果包含敏感字符,則刪除敏感字符,敏感字符包括’、
>、<=、!、-、+、*、/、0、|和空格等。
#8226;使用Request獲取信息時要過濾SQL語句中的關鍵字,主要包括create、delete、
trunscate、drop、exec等。
#8226;不要在用戶輸入過程中構造WHERE字句,應該利用參數來使用存儲過程。
#8226;對于IIS的執行權限進行謹慎管理,除非特別必要,一般不提供執行權限。
#8226;謹慎管理數據庫用戶的訪問權限,通常public權限就足夠了,sa級別權限就不要提供。在ASP.NET中可以自定義一個方法過濾非法字符。
所謂的SQL注入攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造動態SQL命令,或作為存儲工程的輸入參數,這類表單特別容易受到SQL注入攻擊。
常見的SQL注入式攻擊的基本過程如下:
(1)某個ASP.NET Web應用程序有一個登錄頁面,這個登錄頁面控制著用戶是否有權限訪問該應用程序,要求用戶輸入一個用戶名和密碼進行驗證。
(2)登錄頁面中輸入的內容將直接用來構造動態SQL命令,或作為存儲工程的輸入參數。下面是一個ASP.NET Web應用程序構造查詢的一個例子代碼如下:
string strSql=”select * from student where StuID=’”+TxtID.Text+”’ and StuName=’”+TxtName.Text+”’”
(3)攻擊者在用戶名和密碼輸入文本框中輸入一些SQL命令如“like %”之類的內容。
(4)用戶輸入完內容提交給服務器之后,服務器運行上面的ASP.NET代碼構造出來查詢用戶的SQL命令,但由于攻擊者輸入的內容非常特殊,所以最后得到的SQL命令變成如下:string strSql=”select * from student where StuID=like% and StuName=like%。
(5)服務器執行查詢或存儲過程,將用輸入信息和服務器中保存的身份信息進行比較。由于SQL命令已被注入修改,服務器不能真正驗證用戶身份,所以系統將錯誤的授權給攻擊者。
四、結論
基于WEB的應用程序中安全性是指利用WEB管理技術確保WEB系統在運行過程中信息數據的完整性、機密性和可靠性。并單純利用ASP.NET的安全技術是不能完全解決WEB系統的安全問題。基于WEB應用程序的安全性是一項復雜的工程,需要靠軟件、網絡、硬件、人力等多方面的交互接口來共同保證。
參考文獻:
[1] 薛華成.《管理信息系統》(第三版). 清華大學出版社,2000,1
[2] 吳蓮貴,易瑜.基于ASP_NET的_Web網站設計_網絡教學系統的應用與研究[J].計算機教育,2007,10
[3] 潘藩.基于MVC模式的Struts框架在網上考試系統中的應用[J].電腦開發與應用.2008,21(4)