摘要:數據庫的設計與實現是在線教學網站實現的核心內容。文章論述了在線教學網站數據庫的設計與實現技術,重點針對ASP技術在安全性方面的缺陷,在防止暴力破解密碼、SQL語言漏洞、SQL注入等方面進行了安全性技術處理。
關鍵詞:在線教學;數據庫設計;數據庫實現;ASP;安全性
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)15-20ppp-0c
The Design and Realizing of the Database of Online Teaching Website
LI Xiao-Long
(Accountant School of Henan Province,Zhengzhou 450003,China)
Abstract:The design and realizing of the database is the key content of Online teaching websites realizing. This paper introduces the design and realizing of the database. Direct against the defect in security of ASP technology, carried on secure technical processing with the violence explained the password, the SQL language loophole, SQL Injection etc.
Key words:Online teaching;Design of the database;Realizing of the database;ASP;Security
1 引言
隨著計算機多媒體技術應用的日益普及與大學教學形式多元化的發展,網絡在線教學的方式受到越來越多的關注。網絡技術的應用,使教學模式由單一型向多樣化轉變。在線教學網站設計的目的正是通過對其數據庫的設計與實現來構建一個在線教學的平臺。
構建在線教學網站平臺的基礎是其數據庫的設計與實現。按照數據庫設計的基本步驟,結合用戶需求和使用環境,構造數據庫模式,建立了數據庫及其應用系統。系統采用ASP技術完成數據庫系統的實現,利用ASP強大的ADO接口對數據庫進行操作。
2 在線教學網站的數據庫設計
作為在線教學網站的基礎,其數據庫的設計具有重要作用。
2.1 系統功能分析
系統開發的總體任務是實現教學工作的信息化、網絡化,要求能夠完成網絡教學的教學信息發布、網上作業批改、實時、非實時答疑等功能。作為在線教學網站模版,可以在用戶不具備計算機專業知識的情況下,通過簡單的操作進行數據庫的修改,方便地將網站修改為其他課程的教學網站。其主要功能包括:
1)網站用戶管理
用戶分登陸用戶和游客。游客只能對瀏覽網站部分頁面。登陸用戶分為普通用戶、管理員和教師。用戶登錄系統后,系統根據用戶身份在用戶功能信息欄顯示不同內容。網站對用戶采用了審核機制,管理員可以對新注冊用戶進行是否通過審核的操作。擁有用戶管理權限的用戶可以進行用戶的編輯和刪除操作,并賦予用戶具體管理權限。
2)教學公告發布
教學公告用來向學生發布教學動態、教學計劃、教學信息等相關內容。該模塊通過對數據庫系統的訪問實現瀏覽公告內容,對公告內容進行添加、修改、刪除等操作。
3)網站信息管理
本系統作為通用教學網站模版,可以通過對后臺數據庫的操作,將網站修改為其他學科的教學網站,用戶可以對網站名稱、網站地址、課程名稱等內容進行修改,并可上傳自定義圖片在網站首頁顯示。
4)教學內容管理
教學內容功能為教師發布教學大綱、教案等教學相關內容,學生可以瀏覽這些內容進行網上自學。具有教學內容管理權限的用戶可以對教學內容進行添加、修改、刪除等操作。
5)文件上傳及管理
使用ASP技術上傳文件,因涉及服務器安全,本系統采用無組件文件上傳技術,可以上傳教學課件、教學視頻和學生作業等。
6)成績發布及管理
教師可以通過成績發布將各班級測驗、考試的成績發布在網站上,學生登錄系統后可以查看自己發布的自己所在班級的成績。具有成績發布權限的用戶可以在管理頁面發布成績。
7)在線答疑設計
在線答疑是學生與教師非實時交流的平臺,學生在網站上提出問題,教師進行解答后可供學生查看、學習。
2.2 數據庫設計
結合數據庫設計步驟,進行了需求分析、概念設計以及邏輯、物理設計。
本系統采用結構化分析方法(SA方法),從最上層的系統功能結構入手,采用自頂向下、逐層分解的方式分析系統。在線教學系統數據流程圖如圖1所示:

3 數據庫實施階段設計
作為供教師授課使用的在線教學網站,信息交流量不大,需要較快的運行速度和執行效率,且使用時所采用的網站空間應滿足費用少、維護方便等特點,故選用目前使用最普遍的ASP+ACCESS組合方式進行數據庫建立和應用程序的編碼、調試。
在設計ASP應用程序時結合使用了Javascritpt和Vbscript語言,由于它們的功能有限,為了實現應用程序訪問數據庫,創建了一個服務器端的部件,通過COM接口實現數據訪問。
程序設計中將SQL語句嵌入到Vbscript語言程序中,SQL語句負責對數據庫中數據的提取及操作,它所提取的數據逐行提交給程序,程序中其他語句負責數據的處理和傳遞。
4 系統安全技術與實現
針對ASP技術漏洞,本網站在設計中進行了嚴格的安全性技術處理,極大地提高了網站的安全性。
1)設置驗證碼
在用戶登錄系統時,除了輸入用戶名和密碼,還需要輸入的四位隨機數字,即驗證碼。加入驗證碼功能后,可以有效防止非法用戶采用暴力手段破解網站的用戶名和密碼。
2)防止SQL語句密碼驗證的安全漏洞
許多程序員在用SQL語句進行用戶密碼驗證時是通過一個類似這樣的語句來實現的:
Sql=\"Select * from 用戶表 where 姓名='\"name\"' and 密碼='\"password\"'\"
上述語句存在著致命的漏洞。我們在用戶名稱和密碼中均輸入下面的字符串:'or''=',變量代換后,SQL語句就變成了下面的字符串:
Sql=\"Select * from 用戶表 where 姓名='' or ''='' and 密碼='' or ''=''\"
select語句在判斷查詢條件時,遇到或(or)操作就會忽略下面的與(and)操作,而在上面的語句中=的值永遠為true,這意味著無論在密碼中輸入什么值,均能通過上述的密碼驗證。
本網站采用的解決方法是在用戶提交登陸信息時,對用戶名、密碼分步進行判斷。首先判斷數據庫中是否有用戶輸入的用戶名,如果存在,將用戶輸入的密碼和數據庫中的密碼進行比較。只有每一步都正確,才能登陸。經過這種處理,無論用戶輸入什么樣的字符串,只要密碼輸入不正確就無法登錄系統。
3)對數據庫文件的安全保護
系統采用的是ACCESS數據庫,如果數據庫文件不經過處理發布在互聯網上,知道了文件保存路徑就可以在瀏覽器中輸入http地址將數據庫文件直接下載到本地計算機。這樣系統的安全性就會受到很大威脅。
為有效防止此漏洞,將數據庫文件后綴改為.asp,在數據庫文件中建立一個名為<%err%>的表,將其字段內容設為<%select kkk from ddd%>,這是一句錯誤的ASP代碼,用戶試圖下載數據庫文件時,下載工具以解析asp文件的方式解析該文件,遇到如上錯誤代碼會中斷下載,提示出錯。同時在數據文件名中加入#字符,#字符在SQL語言中是用來表示日期的,如果非法用戶編制程序以“SQL=select * from http://...library/#datapb.asp user”的方式跨庫查詢數據庫信息,會提示出錯而中斷操作。通過以上步驟,完善了對數據庫文件的保護。
4)md5加密技術
系統采用md5雜湊加密算法對用戶密碼進行加密,提高了數據的安全性。
5)防止SQL注入
編制ASP代碼時如果沒有對用戶輸入數據的合法性進行判斷,會使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。
本系統中寫入一段函數,來代替ASP中的Request函數,通過對字符串的過濾實現防護SQL注入的效果。函數過濾字符參數中的單引號,對于數字參數進行判斷,如果不是數值類型,則賦值0,如果是字符串,將單引號換成兩個單引號(表示空)。
5 結束語
在線教學網站將教學信息和教學行為有機的融合在一起,以開放式的網絡多媒體方式為學習者提供適應個性化需求的,具有交互反饋的自主選擇機會;為教學者的教學過程提供有效的發布、監控平臺。網絡教學系統不僅吸收借鑒文本材料的系統性和組織性、結構性等特點,又充分利用了計算機信息技術環境下,Internet互聯網信息發布及時、交互性強等技術優勢,具有良好的發展前景。
參考文獻:
[1]薩師煊.數據庫系統概論[M].高等教育出版社,2003.
[2]汪曉平,鐘軍.ASP網絡開發技術[M].北京:人民郵電出版社,2003.
[3]胡標.ASP網絡編程技術與實例[M].北京:人民郵電出版社,2001.
[4]宣小平,但正剛,張文毅.ASP數據庫系統開發實例導航[M].北京:人民郵電出版社,2003.
[5]張固,張曉平.ASP網絡應用系統開發實例解析[M].北京:人民郵電出版社,2004.
收稿日期:2008-03-09
作者簡介:李曉龍(1982-),男,河北寧晉人,助講,工學士。