☆ 張代紅
(濱??h教育局,江蘇濱海 224500)
學(xué)校校園網(wǎng)站的安全及防范
☆ 張代紅
(濱海縣教育局,江蘇濱海 224500)
隨著Internet的發(fā)展,Web技術(shù)日新月異,各類網(wǎng)站如雨后春筍,許多教育管理機構(gòu)和學(xué)校也都建立了自己的網(wǎng)站,學(xué)校校園網(wǎng)站在信息發(fā)布、資源共享、交流溝通中發(fā)揮了重要的作用,亦已成為學(xué)校展示風(fēng)采的重要窗口。如何保證網(wǎng)站的安全是網(wǎng)站管理員面臨的重要任務(wù)。隨著網(wǎng)站建設(shè)技術(shù)的不斷發(fā)展,人們已經(jīng)不再滿足于靜態(tài)HTML技術(shù),更多的是采用動態(tài)、交互的網(wǎng)絡(luò)編程技術(shù)。IIS+ASP架構(gòu)的網(wǎng)站是中小型網(wǎng)站的首選方案,此方案是微軟公司推出的一種典型的服務(wù)器網(wǎng)頁設(shè)計技術(shù)。絕大多數(shù)教育網(wǎng)站均采用此解決方案。但是,該方案在為我們帶來便捷的同時,也帶來了嚴(yán)峻的安全問題。
首先,ASP程序的運行機制帶來的安全隱患。ASP是解釋性語言,運行的是源代碼本身,這就大大降低了程序源代碼的安全性。如果黑客侵入站點或利用其它一些手段,特別是對于租用服務(wù)器的用戶,因個別服務(wù)器出租商的職業(yè)道德問題,都會造成ASP應(yīng)用程序源代碼的泄露。其次,ASP代碼使用表單實現(xiàn)交互,而相應(yīng)的內(nèi)容會反映在瀏覽器的地址欄中,如果不采用適當(dāng)?shù)陌踩胧?,只要記下這些內(nèi)容,就可以繞過驗證直接進(jìn)入某一頁面。例如:在瀏覽器中敲入“...page.asp芽x=8”,即可不經(jīng)過表單頁面直接進(jìn)入滿足“x=8”條件的頁面。因此,在驗證或注冊頁面中,必須采取特殊措施來避免此類問題的產(chǎn)生。
解決方案:
(1)對ASP頁面進(jìn)行加密處理,使黑客不能獲得明文的頁面源代碼??刹捎脙煞N方法對ASP頁面進(jìn)行加密。一是使用組件技術(shù)將編程邏輯封裝入DLL之中;二是使用微軟的Script Encoder對ASP頁面進(jìn)行加密。
(2)對需要驗證的ASP頁面的代碼開頭做相應(yīng)的處理,可采用Session對象進(jìn)行注冊驗證。
(3)在IIS中設(shè)置最低的腳本運行權(quán)限。具體設(shè)置為:在“Web服務(wù)擴展”中,“禁止所有CGI擴展”、“禁止所有未知ISAPI擴展”、“禁止Internet數(shù)據(jù)連接器”、“禁止WebDAV”、“禁止在服務(wù)器端的包含文件”。在網(wǎng)站“屬性”設(shè)置中,禁止“寫入”和“目錄瀏覽”,在“執(zhí)行權(quán)限”中選擇“純腳本”。
動態(tài)網(wǎng)站是基于數(shù)據(jù)庫的,數(shù)據(jù)庫是一個網(wǎng)站的核心,如果數(shù)據(jù)庫被下載或解密,黑客即可獲得網(wǎng)站的控制權(quán),網(wǎng)站就被黑了。
解決方案:
(1)必須修改默認(rèn)數(shù)據(jù)庫存放路徑和數(shù)據(jù)庫名。不要將數(shù)據(jù)庫放在如datebase等人們常用的目錄下,可以起一些只有你自己知道的非常規(guī)的名字并設(shè)置幾層目錄。數(shù)據(jù)庫擴展名改為asa,數(shù)據(jù)庫名可自己編寫一個復(fù)雜的數(shù)字、大小寫字母間隔的、中間加上@、#、$等特殊符號的名字,如將數(shù)據(jù)庫名改為kdy@QG$roigh@4896#dirm.asa,這樣黑客軟件就掃描不到這些特殊字符后面的字符,確保數(shù)據(jù)庫不會被下載。
(2)對數(shù)據(jù)庫文件編碼及加密。對使用IIS+ASP+Access的網(wǎng)站,由于Access數(shù)據(jù)庫的加密機制比較簡單,即使設(shè)置了密碼,解密也很容易。該數(shù)據(jù)庫系統(tǒng)通過將用戶輸入的密碼與某一固定密鑰(例如:Access 97為86 FB EC 37 5D 44 9C FA C6 5E 28 E6 13)進(jìn)行“異或”來形成一個加密串,并將其存儲在*.mdb文件從地址“&H42”開始的區(qū)域內(nèi)。黑客可以輕松地編制解密程序,一個幾十行的小程序就可以輕松地獲得任何Access數(shù)據(jù)庫的密碼。因此,只要數(shù)據(jù)庫被下載,其信息就沒有任何安全性可言了,所以必須對數(shù)據(jù)庫文件進(jìn)行編碼。在“工具→安全→加密/解密數(shù)據(jù)庫”中選取數(shù)據(jù)庫(如:dabase.mdb),然后按確定,接著會出現(xiàn)“數(shù)據(jù)庫加密后另存為” 的窗口,可存為:“kdy@QG$roigh@4896#dirm.asa”。要注意的是,以上的動作并不是對數(shù)據(jù)庫設(shè)置密碼,而只是對數(shù)據(jù)庫文件加以編碼,目的是為了防止他人使用別的工具來查看數(shù)據(jù)庫文件的內(nèi)容。接下來再為數(shù)據(jù)庫加密,首先打開經(jīng)過編碼了的kdy@QG$roigh@4896#dirm.asa,在打開時,選擇“獨占”方式。然后選取功能表的“工具→安全→設(shè)置數(shù)據(jù)庫密碼”,接著輸入密碼即可。這樣即使他人得到了kdy@QG$roigh@4896#dirm.asa文件,沒有密碼他也是無法看到kdy@QG$roigh@4896#dirm.asa中的內(nèi)容。
對使用IIS+ASP+SQL架構(gòu)的網(wǎng)站,首先特別需要注意的是SQL Server默認(rèn)的管理員賬號“sa”的密碼是空的,這給多數(shù)服務(wù)器產(chǎn)生一個安全漏洞。所以要對sa賬號設(shè)置密碼,再另外添加一個能滿足你使用要求的一般賬號,給予僅僅是執(zhí)行代碼的權(quán)限,因為一般操作數(shù)據(jù)庫不要使用像sa這樣的最高權(quán)限的賬號;其次,如不使用遠(yuǎn)程管理請務(wù)必關(guān)閉3389端口,如使用遠(yuǎn)程桌面管理最好更換3389端口,選擇一個不常用的別人猜不到的一個端口號??雌饋鞸QL和3389好像沒有必然聯(lián)系,但黑客往往會利用此端口入侵你的SQL服務(wù)器;最后,還要跟著微軟打滿所有補丁,以保證SQL數(shù)據(jù)庫的安全。
以上僅就IIS+ASP架構(gòu)的動態(tài)網(wǎng)站的腳本及數(shù)據(jù)庫安全及防范談了一點粗淺的看法,其實對網(wǎng)站的攻擊還有很多,如DDOS攻擊、ASP木馬、SQL注入攻擊等。做好以上防范措施,您的網(wǎng)站只能說是相對安全了,決不能因此疏忽大意,因為入侵與反入侵是一場永恒的戰(zhàn)爭選
[編輯:于翼楠]