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