摘要:隨著互聯(lián)網(wǎng)的飛速發(fā)展,氣象網(wǎng)站也日益增多,網(wǎng)站安全已成為網(wǎng)站的首要問題。本文結(jié)合筆者ASP氣象網(wǎng)站的開發(fā)經(jīng)驗(yàn),通過列舉一些采用了ASP+Access/SQL Server構(gòu)建氣象網(wǎng)站的安全隱患,并提出了幾種解決方法。
關(guān)鍵詞:氣象;網(wǎng)站;安全;ASP;隱患;方法
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599(2012)24-0117-02
1 引言
隨著互聯(lián)網(wǎng)的飛速發(fā)展,氣象網(wǎng)站也日益增多,網(wǎng)站安全已成為網(wǎng)站的首要問題。在網(wǎng)站數(shù)據(jù)庫訪問的多種技術(shù)中,ASP(Active Server Pages)以其開發(fā)周期短、存取數(shù)據(jù)庫方便、執(zhí)行效率高而成為眾多網(wǎng)站程序員的首選開發(fā)技術(shù)。氣象網(wǎng)站作為氣象部門形象宣傳和信息服務(wù)的窗口,其安全不容小視。本文結(jié)合筆者ASP氣象網(wǎng)站的開發(fā)經(jīng)驗(yàn),通過列舉一些采用了ASP+Access/SQL Server構(gòu)建氣象網(wǎng)站的安全隱患,并提出了幾種解決方法。
2 網(wǎng)站安全現(xiàn)狀
根據(jù)CNCERT/CC(國家互聯(lián)網(wǎng)應(yīng)急中心)統(tǒng)計報告顯示,2011年中國境內(nèi)被篡改網(wǎng)站數(shù)量累計為36612個,較2010年略增5.1%。由此可見,網(wǎng)站的攻擊活動每年都在增長,我們在網(wǎng)站安全方面存在著重大的隱患。氣象網(wǎng)站隨著氣象數(shù)據(jù)量的日益增大,網(wǎng)站安全也變得更加重要,網(wǎng)站安全問題解決不好隨時都會被黑客攻擊,導(dǎo)致網(wǎng)站數(shù)據(jù)被毀,造成難以估量的損失。
3 網(wǎng)站安全隱患及解決方法
3.1 ASP源代碼的安全隱患
ASP程序采用了非編譯性語言,很大程度上降低了源代碼的安全性。但是,由于一些其他缺陷,比如操作系統(tǒng)、IIS(Internet Information Services)以及ASP系統(tǒng)自身的漏洞,卻可能使ASP源碼暴露無遺。黑客一旦侵入站點(diǎn),就可以獲得全部ASP源代碼。
解決方法:及時更新操作系統(tǒng)補(bǔ)丁,使用高版本IIS程序和對ASP頁面進(jìn)行加密。建議使用工具對網(wǎng)站程序漏洞進(jìn)行檢測,對掃描出的漏洞及時進(jìn)行修復(fù),如使用360網(wǎng)站安全檢測工具,就可以對氣象網(wǎng)站進(jìn)行漏洞檢測、掛馬檢測和篡改檢測。
3.2 程序設(shè)計中的安全隱患
ASP代碼利用表單(form)實(shí)現(xiàn)與用戶交互的功能,而相應(yīng)的內(nèi)容會反映在瀏覽器的地址欄中,如果不采用適當(dāng)?shù)陌踩胧?,只要記下這些內(nèi)容,就可以繞過驗(yàn)證直接進(jìn)入某一頁面。例如在瀏覽器中敲入“URL/show.a sp?x=1”,即可不經(jīng)過表單頁面直接進(jìn)入滿足“x=1”條件的頁面。
解決方法:在驗(yàn)證或注冊頁面中,利用Session對象進(jìn)行注冊驗(yàn)證。
3.3 數(shù)據(jù)庫隱患
數(shù)據(jù)庫是網(wǎng)站的最核心部分,它的安全運(yùn)行是保證整個氣象網(wǎng)站正常運(yùn)行的前提。常用的網(wǎng)站數(shù)據(jù)庫是Access 和SQL Server,以下分別針對它們在ASP 運(yùn)行環(huán)境下的安全技術(shù)進(jìn)行分析。
3.3.1 Access數(shù)據(jù)庫安全
3.3.1.1 數(shù)據(jù)庫文件名和存放路徑簡單
如果入侵者獲得或者猜到Access數(shù)據(jù)庫的存儲路徑和數(shù)據(jù)庫名,則該數(shù)據(jù)庫就可以被下載到本地,而暴露帳號和密碼。
解決方法:(1)非常規(guī)命名法。為Access數(shù)據(jù)庫文件起一個復(fù)雜的非常規(guī)名字,并把它保存在更深目錄下, 使入侵者很難猜測到Access文件名。例如,對于天氣預(yù)報的數(shù)據(jù)庫文件,不要簡單地命名為“tqyb.mdb”,而是要起個非常規(guī)的名字,如faq19fxbdal.mdb,再把它放在如./akkjj16t/kjhgb661/fxj/avccx77之類的深層目錄下。這樣,對于一些通過猜的方式得到Access數(shù)據(jù)庫文件名的非法訪問方法起到了有效的阻止作用。(2)將數(shù)據(jù)庫的擴(kuò)展名更改為.asp、.asa等不影響數(shù)據(jù)庫查詢的名字,使得更改后的數(shù)據(jù)庫無法通過瀏覽器直接下載,即使將數(shù)據(jù)庫文件下載下來,打開后看到的也是亂碼,對攻擊者來說也是毫無用處的。(3)使用ODBC數(shù)據(jù)源。應(yīng)盡量使用ODBC(Open Database Conectivity)即開放式數(shù)據(jù)庫互聯(lián)數(shù)據(jù)源,不要把數(shù)據(jù)庫名直接寫在程序中,否則,數(shù)據(jù)庫名將隨ASP源代碼的失密而一同失密。(4)為數(shù)據(jù)庫文件編碼及加密。
3.3.2 SQL Server數(shù)據(jù)庫安全
3.3.2.1 sa用戶弱口令的安全隱患
不少網(wǎng)絡(luò)管理員為數(shù)據(jù)庫sa用戶起了一些諸如1234,4321,123456等簡單的密碼,甚至根本就不設(shè)置密碼,這樣網(wǎng)絡(luò)入侵者就可以利用一些黑客工具很輕松的掃描到sa的密碼,進(jìn)而控制服務(wù)器的管理權(quán)限,從而威脅網(wǎng)站數(shù)據(jù)的安全。
解決方法:為數(shù)據(jù)庫sa用戶設(shè)置數(shù)字和字母組成的高度復(fù)雜的密碼,同時新建立一個與sa具有相同權(quán)限的超級用戶來管理數(shù)據(jù)庫,最好不要在數(shù)據(jù)庫應(yīng)用中直接使用sa帳號。
3.3.2.2 數(shù)據(jù)庫遠(yuǎn)程管理的安全隱患
SQL數(shù)據(jù)庫支持從遠(yuǎn)程進(jìn)行數(shù)據(jù)庫的維護(hù),使用遠(yuǎn)程對于用戶來說可能比較方便,但如果攻擊者破解了SQL
(下轉(zhuǎn)第119頁)