李如桃
(寧波職業(yè)技術(shù)學(xué)院,浙江 寧波 315800)
隨著經(jīng)全球化的發(fā)展,信息成為商家、政府、甚至個人之間相互競爭的重要因素,而INTERNET 提供了在這場競爭中獲勝的有利工具。有需要在INTERNET 上發(fā)布信息、提供新型的網(wǎng)上管理和服務(wù),從而使網(wǎng)站建設(shè)與網(wǎng)頁設(shè)計的相關(guān)技術(shù)蓬勃發(fā)展起來。現(xiàn)在基本上網(wǎng)站的建設(shè)都采用了動態(tài)網(wǎng)頁技術(shù),主要有:CGI,PHP,ASP,JSP,ASP.net 等等。其中ASP 是比較流行的動態(tài)網(wǎng)頁制作技術(shù)。
在提供網(wǎng)絡(luò)服務(wù)時,信息的安全性至關(guān)重要。安全包括服務(wù)器及數(shù)據(jù)的安全、服務(wù)器與用戶之間傳遞信息的安全、終端用戶計算機(jī)及其他網(wǎng)絡(luò)設(shè)備的安全。網(wǎng)站安全策略目的是抵抗來自網(wǎng)絡(luò)環(huán)境的攻擊方法,從而提高網(wǎng)站系統(tǒng)的安全級別。主要涉及Web 服務(wù)器軟件、支撐服務(wù)器運(yùn)行的操作系統(tǒng)的安全設(shè)置及管理、網(wǎng)站系統(tǒng)本身的代碼及管理。本文對ASP 代碼的安全設(shè)置作淺顯的分析。
ASP(Active Server Pages)是 Microsoft 的一個強(qiáng)有力的基于服務(wù)器的技術(shù),它起一種編程語言的作用,可利用它編寫動態(tài)產(chǎn)生網(wǎng)頁的HTML 程序代碼。利用Microsoft? Active Server Pages 服務(wù)器端腳本編寫環(huán)境,可以創(chuàng)建和運(yùn)行動態(tài)、交互的Web 服務(wù)器應(yīng)用程序。使用ASP 可以組合HTML 頁、腳本命令和ActiveX 組件以創(chuàng)建交互的Web 頁和基于Web的功能強(qiáng)大的應(yīng)用程序。ASP 據(jù)有語言兼容性高、編寫過程簡化、對客戶端要求低、安全性高、數(shù)據(jù)庫訪問便捷等優(yōu)點。但若在腳本編寫中有不良習(xí)慣或疏忽會給網(wǎng)站安全帶來極大的隱患,現(xiàn)就幾個常見的漏洞進(jìn)行分析,給出規(guī)避方法。
網(wǎng)站中某些主要頁面是要通過驗證才能進(jìn)去的。但如果被非法用戶知曉了ASP 頁面的路徑和文件名,只要直接輸入URL 地址便可以繞過驗證,直接進(jìn)入重要的ASP 頁面。因此我們可以在重要的需要驗證的ASP 頁面開頭處進(jìn)行處理,比如:叛定session(),并且跟蹤上一個頁面的文件名,只有從上一個頁面轉(zhuǎn)進(jìn)來的會話才能讀取這個頁面??蓞⒖既缦麓a
一般我們都是將用戶名和密碼放在數(shù)據(jù)庫中,在驗證時采用以下的SQL 語句
一旦數(shù)據(jù)庫文件泄露,安全保護(hù)就形同虛設(shè),可以使用MD5.asp 文件對用戶名和密碼進(jìn)行加密,MD5 是一種加密算法,它可以對任何文件產(chǎn)生一個唯一的不可逆的字符串變換MD5 信息摘要。這樣,即使密碼數(shù)據(jù)庫泄露,得到的也是一段不可還原的字符,無法獲取真正的密碼。ASP 中使用MD5 加密只需在頁首引入md5.asp
使用command 插入記錄,插入前對密碼加密,語名為
將DSN 寫在ASP 文件中,使程序更加靈活、方便,但可能導(dǎo)致數(shù)據(jù)源物理路徑的泄露,存在安全隱患。建議在ODBC 中設(shè)立數(shù)據(jù)源,程序中使用數(shù)據(jù)名來打開數(shù)據(jù)庫,不涉及具體的物理路徑,即使文件的源代碼泄露,所能看到的也只是一個數(shù)據(jù)源的名稱,當(dāng)然,這樣是以犧牲程序的靈活性為代價的。
網(wǎng)頁上如留言板等允許用戶輸入字符的部件,如果允許用戶應(yīng)用html 標(biāo)記語言,將使程序不可控,如用戶在某一留言框中輸入
;
如果你的ASP 程序中沒有屏蔽html 語句,那么就會隨用戶意愿改變"您好!"的字體大小。假如攻擊者輸入的是一段Javascript的死循環(huán)代碼,就有可能使其他用戶的瀏覽器因死循環(huán)而死機(jī)。簡單的對應(yīng)辦法屏蔽掉所有的HTML、Javascript 語句,也可以寫一段程序判定客戶端的輸入。
利用ASP 編寫的網(wǎng)頁在制作過程中,處于網(wǎng)上調(diào)試階段,這時攻擊者通過某些搜索引擎機(jī)查找到該網(wǎng)頁,會得到有關(guān)文件(.inc)的定位,并能在瀏覽器中察看這些文件完整的源代碼,從而導(dǎo)致某些敏感信息的泄露。解決這一問題的方法是,在為.inc 文件的文件命名時,不要采用系統(tǒng)默認(rèn)的或者有特殊含義容易被用戶猜測到的文件名,盡量使用無規(guī)則的英文字母。有條件的話可以對.inc 文件進(jìn)行加密。最好使用.asp 文件代替.inc 文件使用戶無法從瀏覽器直接觀看文件的源代碼。
[1]《網(wǎng)絡(luò)程序設(shè)計:ASP》,尚俊杰,北京交通大學(xué)出版社,2004.11.
[2]《黑客攻防實例入門》,王杰、高山、石云,科學(xué)出版社,2006.4.
[3]《高性能網(wǎng)站建設(shè)指南》,(美)桑德斯|譯者:劉彥博,電子工業(yè)出版,2002.6.