☆ 化 方
(隆堯第一中學,河北隆堯 055350)
基于ASP+Access構(gòu)架的中小學網(wǎng)站的安全性問題探討
☆ 化 方
(隆堯第一中學,河北隆堯 055350)
隨著教育信息化的發(fā)展,越來越多的中小學開始建設并擁有自己的網(wǎng)站。根據(jù)調(diào)查分析,發(fā)現(xiàn)多數(shù)中小學網(wǎng)站在建設中采用ASP+Access的技術架構(gòu),由于技術本身的局限性,使得這些網(wǎng)站存在一定的安全隱患?;谠摤F(xiàn)狀,結(jié)合工作經(jīng)驗,提出了幾種相應的防范措施。
ASP+Access;網(wǎng)站;安全性
隨著教育信息化的發(fā)展,城市和經(jīng)濟發(fā)達地區(qū)各級各類學校已不同程度地建有校園網(wǎng)并以多種方式接入互聯(lián)網(wǎng),信息終端正逐步進入農(nóng)村學校,越來越多的中小學校擁有了自己的網(wǎng)站。筆者通過調(diào)查發(fā)現(xiàn),目前,中小學校建設網(wǎng)站的方式大致可以分為三種:聘請專業(yè)的公司和人員來開發(fā);利用相關的互聯(lián)網(wǎng)服務產(chǎn)品,如中國現(xiàn)代教育網(wǎng)的網(wǎng)校平臺和中國遠程教育網(wǎng)的學校建站系統(tǒng);修改開源的CMS系統(tǒng)等。在技術選型方面,ASP+Access由于具有入手容易、界面友好、維護方便等特點,受到設計和開發(fā)人員的歡迎,成為眾多中小學網(wǎng)站的首選方案。雖然ASP+Access的架構(gòu)不需要復雜的編程,就可以開發(fā)出專業(yè)的網(wǎng)站;但由于ASP+Access技術本身的局限性,使得網(wǎng)站系統(tǒng)存在不容忽視的安全隱患,如果稍不注意,就可能成為黑客的攻擊對象,從而面臨頁面被篡改、掛馬、植入黑鏈等風險。本文將就這一問題進行分析,進而提出相應的防范措施來提高網(wǎng)站的安全性。
ASP+Access網(wǎng)站的安全性問題一方面來源于ASP程序設計過程中的安全漏洞,另一方面來源于Access數(shù)據(jù)庫的安全隱患。
(一)AASSPP程序設計中的安全漏洞
作為一種動態(tài)網(wǎng)頁技術,ASP程序會根據(jù)用戶的輸入信息而動態(tài)改變并做出響應,由于用戶輸入信息的不可預測,加之編寫程序時,沒有對用戶提交的數(shù)據(jù)進行合法性檢查和過濾,致使網(wǎng)站系統(tǒng)存在一些安全漏洞,常見的漏洞有以下兩種。
1.繞過驗證的漏洞
某些交互程序要求用戶必須登陸系統(tǒng)后才能操作,而進行相關操作所需的用戶名、密碼、命令等內(nèi)容會顯示在瀏覽器的地址欄中。一旦非法用戶獲取了這種地址,執(zhí)行操作的網(wǎng)頁本身卻沒有驗證用戶身份的程序,則非法用戶直接輸入該地址,即可繞過登錄驗證,直接執(zhí)行相關的操作。
2.SSQQLL注入的漏洞
SQL注入漏洞是很多網(wǎng)站普遍存在的一個安全隱患。所謂SQL注入,是指用戶通過表單或地址欄提交一段包含SQL命令的字符串,根據(jù)程序返回的結(jié)果,進而分析、獲取系統(tǒng)管理員的用戶名和密碼、數(shù)據(jù)庫的類型、數(shù)據(jù)表的結(jié)構(gòu)等信息,甚至對網(wǎng)站數(shù)據(jù)庫進行修改或直接在數(shù)據(jù)庫中添加具有管理員權限的用戶等。
(二)Acccceessss數(shù)據(jù)庫的安全隱患
11.Acccceessss數(shù)據(jù)庫的存儲隱患
在ASP+Access網(wǎng)站系統(tǒng)中,如果用戶猜到或者獲知Access數(shù)據(jù)庫(*.mdb)的存儲路徑和文件名,就可以把數(shù)據(jù)庫下載到本地。在實際的開發(fā)過程中很多程序員直接將網(wǎng)站數(shù)據(jù)庫命名為data.mdb、database.mdb、db.mdb等,存儲的文件夾名也是data、database、db或干脆放在根目錄下。如此一來,只要在瀏覽器地址欄中輸入“URL/ data/data.mdb”,就可以輕而易舉地把data.mdb下載到本地。
22.Acccceessss數(shù)據(jù)庫的加密隱患
作為數(shù)據(jù)庫系統(tǒng),Access可以設置系統(tǒng)密碼。但其加密機制卻非常簡單。其原理是:Access數(shù)據(jù)庫的文件頭中42H-4EH為密碼區(qū),在設置密碼時,Access會將用戶所設密碼的ASCII碼與密碼區(qū)的內(nèi)容進行異或運算,然后將運算的結(jié)果存入密碼區(qū)。由于異或操作的特點是“經(jīng)過兩次異或就恢復原值”,因此,用這一密碼與Ac?cess文件中的加密串進行第二次異或操作,就可以輕松地得到Access數(shù)據(jù)庫的密碼。
因此,只要Access數(shù)據(jù)庫被下載,無論其是否設置了系統(tǒng)密碼,該網(wǎng)站都沒有任何安全性可言。
(一)利用SSeessssiioonn變量進行用戶身份驗證
Session變量可以存儲特定用戶會話所需的信息,讓后續(xù)的網(wǎng)頁讀取。因此,可以在需要限制訪問的頁面加入Session變量,一旦非法用戶試圖直接訪問受限的頁面,但程序判斷相關的Session變量為空時,則強制將頁面跳轉(zhuǎn)到登陸頁面。例如:
(二)防范SSQQLL注入漏洞的方法
一般來說,防范SQL注入漏洞有三種方式:第一是編寫程序代碼過濾頁面中post或者get請求中參數(shù)信息的非法字符;第二是通過設置IIS報錯信息使非法用戶無法獲得有用的信息;第三是通過分開設置網(wǎng)站的權限使非法用戶無法取得更改數(shù)據(jù)庫的權限。下面介紹一種對整個網(wǎng)站系統(tǒng)進行防注的簡單方法。首先從網(wǎng)上下載防范SQL注入通用代碼,如:360通用防護代碼(asp版),然后,在系統(tǒng)的一個公用文件頭部通過添加<!--#include virtual="/360_safe.asp"-->來調(diào)用代碼,以此來提高網(wǎng)站系統(tǒng)防范SQL注入的安全性。
(三)復雜化數(shù)據(jù)庫存儲路徑和文件名
防范Access數(shù)據(jù)庫被下載的簡便方法是為數(shù)據(jù)庫文件起一個非常規(guī)的、復雜的名字,在文件名中摻雜一些特殊符號——&、%、$、#、@等,并把它存放在多層目錄下,這樣可以有效地防止通過猜測方式來下載數(shù)據(jù)庫文件。例如:網(wǎng)站數(shù)據(jù)庫存儲時,db="qhXbWk/E5i3OV/ zo#Owy.mdb"的安全性就遠比db="data/data.mdb"要高。
(四)使用OODDBBCC數(shù)據(jù)源
通常情況下,程序開發(fā)人員會將網(wǎng)站數(shù)據(jù)庫的存儲路徑和文件名寫在一個公用的連接文件conn.asp中,一旦該文件失密,那么,不管數(shù)據(jù)庫文件名和存儲路徑多么復雜,都會隨源代碼的失密而一同失密。而使用OD?BC數(shù)據(jù)源,通過設置數(shù)據(jù)源的名字DSN(Data Source Name),就可以避免這樣的問題。具體操作為“控制面板”——“管理工具”——“數(shù)據(jù)源(ODBC)”,設置“系統(tǒng)DSN”數(shù)據(jù)源,例如:將數(shù)據(jù)源名設為“School”。編寫連接代碼:
(五)添加防下載字段并修改數(shù)據(jù)庫的擴展名
運用該方法防范數(shù)據(jù)庫下載,很多人認為只要將Access文件的擴展名修改為asp或asa即可,但這樣操作以后使用FlashGet之類的下載工具照樣可以下載數(shù)據(jù)庫。該方法的關鍵是要添加防下載字段。其具體做法為:打開Access數(shù)據(jù)庫,選擇“對象”選項卡中的“查詢”,雙擊“在設計視圖中創(chuàng)建查詢”,在彈出的“顯示表”對話框中,不添加任何表,直接點“關閉”按鈕,這時在工具欄中就會出現(xiàn)一個“SQL”按鈕,點擊這個按鈕或在“查詢”窗口中點擊右鍵,選擇“SQL視圖”菜單,就會打開一個查詢語句輸入窗口,輸入命令語句:“Create Table [nodown]([notdown]oleobject)”,然后點擊工具欄中的“!”(運行按鈕),這樣便可創(chuàng)建一個“nodown”表,表中的字段名為“notdown”,字段類型為“OLE對象”,重新輸入命令語句:“Insert into[nodown](notdown)values(0x3C25)”,點擊運行按鈕即可完成防下載字段的添加,其中,“0x3C25”為字符“<%”的16進制形式。
網(wǎng)站的入侵與防范就如同“矛與盾”,構(gòu)建安全穩(wěn)定的網(wǎng)絡系統(tǒng)不是幾條簡單的措施就能夠完成的。本文介紹的一些個人經(jīng)驗,只是希望對各中小學網(wǎng)站的安全性建設起一些參考作用?!暗栏咭怀?,魔高一丈”,單純依靠技術防范很難保證網(wǎng)站的絕對安全,關鍵是完善和加強網(wǎng)站安全管理制度,例如:制定賬號口令管理策略、定期進行漏洞掃描和病毒查殺、做好系統(tǒng)和數(shù)據(jù)備份等。只有系統(tǒng)管理員認真履行職責,嚴格執(zhí)行管理制度,才能及時有效地防范和阻止對網(wǎng)站系統(tǒng)的攻擊,構(gòu)建一個相對安全穩(wěn)定的動態(tài)網(wǎng)站。
[1]教育部.教育信息化十年發(fā)展規(guī)劃(2011-2020年)[Z].2012,(3).
[2]李忠健.Asp網(wǎng)站中Access數(shù)據(jù)庫的安全防范[J].信息與電腦, 2010,(4):5.
[3]呂俊霞,李巧君.基于ASP+Access的網(wǎng)站安全性分析[J].辦公自動化,2007,(8):39.
[4]馮現(xiàn)永.ASP網(wǎng)站防止SQL注入策略研究[J].信息安全與技術, 2011,(11):50-51.
[編輯:陳 鉞]
G434
A
1671-7503(2014)05-0074-02