☆ 化 方
(隆堯第一中學,河北隆堯 055350)
基于ASP+Access構架的中小學網站的安全性問題探討
☆ 化 方
(隆堯第一中學,河北隆堯 055350)
隨著教育信息化的發展,越來越多的中小學開始建設并擁有自己的網站。根據調查分析,發現多數中小學網站在建設中采用ASP+Access的技術架構,由于技術本身的局限性,使得這些網站存在一定的安全隱患。基于該現狀,結合工作經驗,提出了幾種相應的防范措施。
ASP+Access;網站;安全性
隨著教育信息化的發展,城市和經濟發達地區各級各類學校已不同程度地建有校園網并以多種方式接入互聯網,信息終端正逐步進入農村學校,越來越多的中小學校擁有了自己的網站。筆者通過調查發現,目前,中小學校建設網站的方式大致可以分為三種:聘請專業的公司和人員來開發;利用相關的互聯網服務產品,如中國現代教育網的網校平臺和中國遠程教育網的學校建站系統;修改開源的CMS系統等。在技術選型方面,ASP+Access由于具有入手容易、界面友好、維護方便等特點,受到設計和開發人員的歡迎,成為眾多中小學網站的首選方案。雖然ASP+Access的架構不需要復雜的編程,就可以開發出專業的網站;但由于ASP+Access技術本身的局限性,使得網站系統存在不容忽視的安全隱患,如果稍不注意,就可能成為黑客的攻擊對象,從而面臨頁面被篡改、掛馬、植入黑鏈等風險。本文將就這一問題進行分析,進而提出相應的防范措施來提高網站的安全性。
ASP+Access網站的安全性問題一方面來源于ASP程序設計過程中的安全漏洞,另一方面來源于Access數據庫的安全隱患。
(一)AASSPP程序設計中的安全漏洞
作為一種動態網頁技術,ASP程序會根據用戶的輸入信息而動態改變并做出響應,由于用戶輸入信息的不可預測,加之編寫程序時,沒有對用戶提交的數據進行合法性檢查和過濾,致使網站系統存在一些安全漏洞,常見的漏洞有以下兩種。
1.繞過驗證的漏洞
某些交互程序要求用戶必須登陸系統后才能操作,而進行相關操作所需的用戶名、密碼、命令等內容會顯示在瀏覽器的地址欄中。一旦非法用戶獲取了這種地址,執行操作的網頁本身卻沒有驗證用戶身份的程序,則非法用戶直接輸入該地址,即可繞過登錄驗證,直接執行相關的操作。
2.SSQQLL注入的漏洞
SQL注入漏洞是很多網站普遍存在的一個安全隱患。所謂SQL注入,是指用戶通過表單或地址欄提交一段包含SQL命令的字符串,根據程序返回的結果,進而分析、獲取系統管理員的用戶名和密碼、數據庫的類型、數據表的結構等信息,甚至對網站數據庫進行修改或直接在數據庫中添加具有管理員權限的用戶等。
(二)Acccceessss數據庫的安全隱患
11.Acccceessss數據庫的存儲隱患
在ASP+Access網站系統中,如果用戶猜到或者獲知Access數據庫(*.mdb)的存儲路徑和文件名,就可以把數據庫下載到本地。在實際的開發過程中很多程序員直接將網站數據庫命名為data.mdb、database.mdb、db.mdb等,存儲的文件夾名也是data、database、db或干脆放在根目錄下。如此一來,只要在瀏覽器地址欄中輸入“URL/ data/data.mdb”,就可以輕而易舉地把data.mdb下載到本地。
22.Acccceessss數據庫的加密隱患
作為數據庫系統,Access可以設置系統密碼。但其加密機制卻非常簡單。其原理是:Access數據庫的文件頭中42H-4EH為密碼區,在設置密碼時,Access會將用戶所設密碼的ASCII碼與密碼區的內容進行異或運算,然后將運算的結果存入密碼區。由于異或操作的特點是“經過兩次異或就恢復原值”,因此,用這一密碼與Ac?cess文件中的加密串進行第二次異或操作,就可以輕松地得到Access數據庫的密碼。
因此,只要Access數據庫被下載,無論其是否設置了系統密碼,該網站都沒有任何安全性可言。
(一)利用SSeessssiioonn變量進行用戶身份驗證
Session變量可以存儲特定用戶會話所需的信息,讓后續的網頁讀取。因此,可以在需要限制訪問的頁面加入Session變量,一旦非法用戶試圖直接訪問受限的頁面,但程序判斷相關的Session變量為空時,則強制將頁面跳轉到登陸頁面。例如:

(二)防范SSQQLL注入漏洞的方法
一般來說,防范SQL注入漏洞有三種方式:第一是編寫程序代碼過濾頁面中post或者get請求中參數信息的非法字符;第二是通過設置IIS報錯信息使非法用戶無法獲得有用的信息;第三是通過分開設置網站的權限使非法用戶無法取得更改數據庫的權限。下面介紹一種對整個網站系統進行防注的簡單方法。首先從網上下載防范SQL注入通用代碼,如:360通用防護代碼(asp版),然后,在系統的一個公用文件頭部通過添加<!--#include virtual="/360_safe.asp"-->來調用代碼,以此來提高網站系統防范SQL注入的安全性。
(三)復雜化數據庫存儲路徑和文件名
防范Access數據庫被下載的簡便方法是為數據庫文件起一個非常規的、復雜的名字,在文件名中摻雜一些特殊符號——&、%、$、#、@等,并把它存放在多層目錄下,這樣可以有效地防止通過猜測方式來下載數據庫文件。例如:網站數據庫存儲時,db="qhXbWk/E5i3OV/ zo#Owy.mdb"的安全性就遠比db="data/data.mdb"要高。
(四)使用OODDBBCC數據源
通常情況下,程序開發人員會將網站數據庫的存儲路徑和文件名寫在一個公用的連接文件conn.asp中,一旦該文件失密,那么,不管數據庫文件名和存儲路徑多么復雜,都會隨源代碼的失密而一同失密。而使用OD?BC數據源,通過設置數據源的名字DSN(Data Source Name),就可以避免這樣的問題。具體操作為“控制面板”——“管理工具”——“數據源(ODBC)”,設置“系統DSN”數據源,例如:將數據源名設為“School”。編寫連接代碼:

(五)添加防下載字段并修改數據庫的擴展名
運用該方法防范數據庫下載,很多人認為只要將Access文件的擴展名修改為asp或asa即可,但這樣操作以后使用FlashGet之類的下載工具照樣可以下載數據庫。該方法的關鍵是要添加防下載字段。其具體做法為:打開Access數據庫,選擇“對象”選項卡中的“查詢”,雙擊“在設計視圖中創建查詢”,在彈出的“顯示表”對話框中,不添加任何表,直接點“關閉”按鈕,這時在工具欄中就會出現一個“SQL”按鈕,點擊這個按鈕或在“查詢”窗口中點擊右鍵,選擇“SQL視圖”菜單,就會打開一個查詢語句輸入窗口,輸入命令語句:“Create Table [nodown]([notdown]oleobject)”,然后點擊工具欄中的“!”(運行按鈕),這樣便可創建一個“nodown”表,表中的字段名為“notdown”,字段類型為“OLE對象”,重新輸入命令語句:“Insert into[nodown](notdown)values(0x3C25)”,點擊運行按鈕即可完成防下載字段的添加,其中,“0x3C25”為字符“<%”的16進制形式。
網站的入侵與防范就如同“矛與盾”,構建安全穩定的網絡系統不是幾條簡單的措施就能夠完成的。本文介紹的一些個人經驗,只是希望對各中小學網站的安全性建設起一些參考作用。“道高一尺,魔高一丈”,單純依靠技術防范很難保證網站的絕對安全,關鍵是完善和加強網站安全管理制度,例如:制定賬號口令管理策略、定期進行漏洞掃描和病毒查殺、做好系統和數據備份等。只有系統管理員認真履行職責,嚴格執行管理制度,才能及時有效地防范和阻止對網站系統的攻擊,構建一個相對安全穩定的動態網站。
[1]教育部.教育信息化十年發展規劃(2011-2020年)[Z].2012,(3).
[2]李忠健.Asp網站中Access數據庫的安全防范[J].信息與電腦, 2010,(4):5.
[3]呂俊霞,李巧君.基于ASP+Access的網站安全性分析[J].辦公自動化,2007,(8):39.
[4]馮現永.ASP網站防止SQL注入策略研究[J].信息安全與技術, 2011,(11):50-51.
[編輯:陳 鉞]
G434
A
1671-7503(2014)05-0074-02