摘要:本文對Asp技術(shù)下的WEB服務(wù)器的安全問題進行分析和總結(jié),旨在提高使用ASP技術(shù)的WEB開發(fā)和應(yīng)用的安全性。
關(guān)鍵詞:ASP;Web服務(wù)器;數(shù)據(jù)庫
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9599 (2012) 23-0000-02
Asp是微軟公司推出的基于WEB編程的服務(wù)器端腳本環(huán)境,ASP可以輕松地實現(xiàn)對頁面內(nèi)容的動態(tài)控制,根據(jù)不同的瀏覽者,顯示不同的頁面內(nèi)容。ASP可包含HTML標簽,也可以直接存取數(shù)據(jù)庫及使用無限擴充的ActiveX控件,因此在程序編制上要比HTML方便而且更富有靈活性。目前,IIS+ASP+SQL(或Access)方案已成為中小型企業(yè)構(gòu)建自己網(wǎng)上信息系統(tǒng)的首選方案。雖然Asp具有快速開發(fā)能力,但Asp也存在很多不容忽視的安全漏洞。
1 ASP程序設(shè)計安全技術(shù)
Asp程序設(shè)計的安全主要涉及三個方面:Asp源代碼的安全、Asp程序設(shè)計的安全和數(shù)據(jù)庫安全。
1.1 ASP源代碼的安全。(1)保證ASP源碼的安全的主要技術(shù)是Asp腳本加密技術(shù)。常用方法有兩種:一是ASP2DLL技術(shù)。其基本思想是利用VB6.0提供的Activexdll對象將Asp代碼進行封裝,編譯為DLL文件,在Asp程序中調(diào)用該DLL文件。二是利用微軟提供的ScriptEncoder加密軟件對Asp頁面進行加密。(2)置合適的腳本映射。應(yīng)用程序的腳本映射保證了Web服務(wù)器不會意外地下載Asp文件的源代碼,但不安全或有錯誤的腳本映射易導(dǎo)致Asp源代碼泄漏。因此,應(yīng)將用不到的有一定危險性的腳本映射刪掉(如*.htr文件及*.htw,*.ida,*.idq等索引文件)。
1.2 程序設(shè)計中的安全。(1)用戶名、口令機制。用戶名、口令是最基本的安全技術(shù),在Asp中常采用Form表單提交用戶輸入的賬號和密碼,與用戶標識數(shù)據(jù)庫中相應(yīng)的字段進行匹配,在必要的場合可以使用MD5算法來加密用戶輸入的密碼,可以保證在線路被竊聽的情況下依然保證數(shù)據(jù)的安全,保護用戶口令的安全。(2)注冊驗證。為了網(wǎng)站資源的安全性和易于管理,可以對用戶進行分級,給定權(quán)限,使特定用戶訪問特定的資源群,也可以阻止未授權(quán)用戶使用網(wǎng)站的資源,這就需要對用戶進行注冊驗證操作。在ASP中,我們可以利用Session對象和Http頭信息來實現(xiàn)此類安全控制。當訪問者通過身份驗證頁面后,就把Session對象的Sessionid屬性作為一個Session變量存儲起來,當訪問者試圖導(dǎo)航到一種有效鏈接的頁面時,可將當前的Sessionid與存儲在Session對象中的ID進行比較,如果不匹配,則拒絕訪問。如在Session(“id”)中保存著第一次鏈接的Sessionid,<%ifsession.sessionid<>session(“id”)thenresponse.end%>’拒絕訪問。(3)網(wǎng)頁過期管理??紤]到有可能用戶在使用網(wǎng)頁的過程中,有可能會長時間離開計算機處理別的事情,這樣會給別有用心的人有可乘之機,所以應(yīng)該給網(wǎng)頁一個過期時間。這樣不僅保證了用戶的安全,也可以減少服務(wù)器的鏈接數(shù),減少服務(wù)器壓力。可以使用session.timeout=時間,過了這么長時間網(wǎng)頁就失效了,前提是你用一個session值來判斷登錄狀態(tài)如session.timeout=20。(4)頁面緩沖管理:頁面緩沖可以加快網(wǎng)站的瀏覽速度,但也會給非法用戶提供了越權(quán)瀏覽的機會。因此,重要的Web頁面(如身份驗證頁面)必須禁止頁面緩存,強制瀏覽器每次向Web服務(wù)器請求新頁面。利用Asp的Response對象的Expires屬性和Clear方法可解決此問題。具體設(shè)置:Response.expires=0Rsponse.clear,expires表示緩存頁面的有效期,0表示立即過期,clear表示清空緩沖區(qū)。(5)程序錯誤管理:錯誤的執(zhí)行參數(shù)和意外的執(zhí)行過程,都可以導(dǎo)致頁面出現(xiàn)錯誤提示,而這些錯誤提示會提供給別人很多網(wǎng)站的信息,比如使用數(shù)據(jù)庫的類型,表中所含字段的名稱等等。會造成程序的不安全。所以在編程過程中要注意對異常數(shù)據(jù)的處理和意外事件的控制,才能保證網(wǎng)站的安全性。
1.3 數(shù)據(jù)庫的安全。(1)ACCESS數(shù)據(jù)庫:在一些小型程序中,常用到ACCESS數(shù)據(jù)庫,ACCESS數(shù)據(jù)庫易于管理而安全性低,應(yīng)注意在命名時不要采用常規(guī)的*.mdb的后綴名,而應(yīng)該用*.asp,*.inc文件的后綴名,這樣,即使數(shù)據(jù)庫路徑即使被別人發(fā)現(xiàn),也不能下載數(shù)據(jù)庫而導(dǎo)致信息的不安全。(2)SQLSERER數(shù)據(jù)庫:首先應(yīng)更改sa口令,取消guest帳號。并且不能把sa帳號的密碼寫在應(yīng)用程序或者腳本中。其次,應(yīng)加強數(shù)據(jù)庫訪問日志的監(jiān)視,定期備份數(shù)據(jù)庫。同時,制訂完整的數(shù)據(jù)庫備份策略,在必要的時候能夠?qū)崿F(xiàn)對數(shù)據(jù)庫的恢復(fù)。(3)屏蔽數(shù)據(jù)庫路徑信息。為防止數(shù)據(jù)庫路徑和名稱隨ASP源代碼失密而失密,常使用ODBC數(shù)據(jù)源。使用ODBC數(shù)據(jù)源連接數(shù)據(jù)庫的命令是Conn.open“DSN名”。
2 WEB服務(wù)器的安全
Asp技術(shù)中常用微軟自帶的IIS架設(shè)WEB服務(wù)器。WEB服務(wù)器的安全包括了系統(tǒng)的安全和IIS的安全。
2.1 系統(tǒng)的安全。(1)目錄文件的保護:NTFS權(quán)限。NTFS文件系統(tǒng)提供了比Fat32更為安全的文件管理方式,它通過文件訪問控制表(ACL)定義了用戶訪問文件和目錄的權(quán)限級別,如果用戶具有打開文件的權(quán)限,計算機則允許該用戶訪問文件。通過設(shè)定目錄和文件的訪問權(quán)限,禁止無關(guān)用戶對目錄文件進行復(fù)制、修改、刪除等操作,限制對系統(tǒng)的入侵。(2)防火墻技術(shù)??梢愿鶕?jù)WEB服務(wù)器的應(yīng)用范圍,決定防火墻的位置。(3)審核與監(jiān)視技術(shù)。安全審核負責(zé)監(jiān)視系統(tǒng)中各種與安全有關(guān)的事件,生成安全日志,并提供查看安全日志的方法。通過分析安全日志,可以發(fā)現(xiàn)并阻止各種危及系統(tǒng)安全的行為。除了安全日志,系統(tǒng)日志和應(yīng)用程序日志也是很好的監(jiān)視工具,它們記錄了用戶自登錄開始直到退出的整個操作過程,為網(wǎng)絡(luò)安全分析提供可靠的依據(jù)。(4)關(guān)閉不用的服務(wù)和協(xié)議,堵上系統(tǒng)的漏洞和后門?!氨M量少開沒用到的服務(wù)”,如果開啟了某個服務(wù),就要提防該服務(wù)可能引起的漏洞。同時要定期下載操作系統(tǒng)、IIS、ASP和DBMS最新漏洞的補丁,將可能發(fā)生的安全隱患減到最少。
2.2 IIS的安全。(1)不要將IIS安裝在系統(tǒng)分區(qū)上。默認情況下,IIS與操作系統(tǒng)安裝在同一個分區(qū)中,這是一個潛在的安全隱患。因為一旦入侵者繞過了IIS的安全機制,就有可能入侵到系統(tǒng)分區(qū)。如果管理員對系統(tǒng)文件夾、文件的權(quán)限設(shè)置不是非常合理,入侵者就有可能篡改、刪除系統(tǒng)的重要文件,或者利用一些其他的方式獲得權(quán)限的進一步提升。將IIS安裝到其他分區(qū),即使入侵者能繞過IIS的安全機制,也很難訪問到系統(tǒng)分區(qū)。(2)修改IIS的安裝默認路徑。IIS的默認安裝的路徑是\inetpub,Web服務(wù)的頁面路徑是\inetpub\wwwroot,這是任何一個熟悉IIS的人都知道的,入侵者也不例外,使用默認的安裝路徑無疑是告訴了入侵者系統(tǒng)的重要資料,所以需要更改。(3)刪除危險的IIS組件。默認安裝后的有些IIS組件可能會造成安全威脅,例如Internet服務(wù)管理器(HTML)、SMTPService和NNTPService、樣本頁面和腳本,大家可以根據(jù)自己的需要決定是否刪除。
Asp環(huán)境下的安全問題應(yīng)從系統(tǒng)的全局進行分析和考慮,既要保證系統(tǒng)安全,又要取得良好的系統(tǒng)性能。本文從服務(wù)器端、Asp程序設(shè)計兩個方面對Asp安全技術(shù)進行分析和總結(jié),但隨著新的攻擊手段和方法不斷涌現(xiàn),要構(gòu)建一個面面俱到的安全體系是很困難的,因為一種技術(shù)只能解決一或幾個方面的問題。因此,Asp的安全應(yīng)側(cè)重于預(yù)防,規(guī)范自己的編程習(xí)慣,及時地堵上系統(tǒng)漏洞,定期進行風(fēng)險評估,安裝入侵檢測系統(tǒng)等預(yù)防措施能及時有效地進行入侵防范。
[作者簡介]李殿勛(1966.9-),男,單位:遼寧軌道交通職業(yè)學(xué)院(沈陽鐵路機械學(xué)校)教務(wù)處副處長兼教學(xué)評估與督導(dǎo)辦公室主任,高級講師,研究方向:信息技術(shù)及人力資源管理等。