王曉哲
(天津機(jī)電職業(yè)技術(shù)學(xué)院,天津 300131)
NTFS權(quán)限有別于以前的sys32權(quán)限。它比sys32權(quán)限更嚴(yán)格,配置更詳細(xì)。你可以對單獨的文件和目錄使用NTFS訪問權(quán)限。這樣我們就可以對asp所在目錄以及里面的文件加以保護(hù)。NTFS權(quán)限是www服務(wù)器安全性的基礎(chǔ),它是基于網(wǎng)絡(luò)系統(tǒng)的。以前的sys32權(quán)限是基于單機(jī)文件系統(tǒng)。NTFS權(quán)限定義了一個或一個用戶組訪問文件系統(tǒng)和目錄的不同級別。當(dāng)一個擁有web服務(wù)器有效帳號用戶訪問一個有權(quán)限限制的文件時,計算機(jī)首先檢索文件的訪問控制列表 。該列表聲明了不同用戶和用戶組所被受予的權(quán)限和訪問級別。如果該用戶具有打開文件的權(quán)限,那么計算機(jī)就允許該用戶訪問文件,但其他操作是不允許的,例如修改。
Global.a(chǎn)sa文件是asp網(wǎng)站運(yùn)行就立即啟動的全局文件。為了充分保護(hù)ASP應(yīng)用程序,要把應(yīng)用程序里面的Global.a(chǎn)sa文件上為適當(dāng)?shù)挠脩艋蚪M設(shè)置NTFS文件權(quán)限,因為整個網(wǎng)站的配置全在此,所以非常重要。如果Global.a(chǎn)sa里面有向瀏覽器返回信息的命令而你沒有保護(hù),則信息將有可能被重定向返回給任意主機(jī),即便此應(yīng)用程序的其他文件被保護(hù),這種問題也會發(fā)生。這就是我們經(jīng)常所說的重定向安全。所以一定要對應(yīng)用程序里面的所有文件實行統(tǒng)一的NTFS權(quán)限控制。
就目前的操作系統(tǒng)而言,他們的web服務(wù)器提供了非常全面的安全性配置??梢酝ㄟ^配置Web服務(wù)器的權(quán)限來限制用戶查看、運(yùn)行和操作的ASP文件。他的權(quán)限配置不同于NTFS權(quán)限提供的對特定用戶對應(yīng)用程序文件和目錄的訪問方式,Web服務(wù)器權(quán)限對所有用戶有效,并且不區(qū)分用戶級別和類型。在這一點上,他們的角度是不一樣的。對于要運(yùn)行ASP應(yīng)用程序的用戶,在配置Web服務(wù)器權(quán)限時,要遵循下列原則:對包含asp文件的虛擬目錄不允許“讀”或“腳本運(yùn)行”權(quán)限;對asp文件和其他包含腳本的文件所在的虛目錄不允許“讀”或“腳本運(yùn)行”權(quán)限。
應(yīng)用程序的腳本映射文件保證了用戶在瀏覽網(wǎng)頁時不會意外地下載asp文件的源代碼。例如,即使你為含有某個asp文件的目錄設(shè)置了“讀”權(quán)限,只要該asp文件映射于某個腳本的應(yīng)用程序,那么你的Web服務(wù)器也不會將該文件的源代碼返回給用戶,瀏覽器只會報404錯誤(文件無法找到)。
Cookie是一種存放于你的本地機(jī)中含有上網(wǎng)信息的文本文件,包括用戶名和密碼等。ASP使用SessionID(會話號碼)cookie跟蹤對應(yīng)用程序訪問期間特定的 Web瀏覽器的信息。這就是說,帶有相同的cookie的HTTP請求被認(rèn)為是來自同一客戶端。Web服務(wù)器可以使用SessionID判斷某個特定用戶會話信息。
⑴SessionID能否被黑客猜中
為了防止計算機(jī)黑客猜中SessionID并獲得對合法用戶的會話變量的訪問,Web服務(wù)器為每個SessionID指派一個隨機(jī)生成號碼(此號碼算法難度并不是很強(qiáng))。每當(dāng)用戶的Web瀏覽器返回一個Session-ID時,服務(wù)器取出SessionID,接著檢查是否和服務(wù)器上的生成號碼一致。若兩個id號一致,它將認(rèn)為是同一用戶,將允許當(dāng)前用戶訪問前一用戶的所有會話變量。這一技術(shù)的安全性在于數(shù)字的長度(64位),此長度越長那么就使計算機(jī)黑客猜中SessionID概率就越低。
⑵ 加密重要的SessionID Cookie
截獲了用戶sessionID的計算機(jī)黑客可以使用此cookie來假冒該用戶。如果ASP應(yīng)用程序包含私人信息,信用卡或銀行帳戶,因為這些信息在cookie文件中都可明文顯示。擁有竊取的cookie的計算機(jī)黑客就可以使用,使用戶受到極大損失。你可以通過對Web服務(wù)器和用戶的瀏覽器之間的通訊鏈路加密來防止SessionIDcookie被截獲。
用戶在瀏覽網(wǎng)頁過程中,有時會因為某種情況長時間離開計算機(jī)處理別的事情,而忘記關(guān)掉網(wǎng)頁。這樣會給別人有可乘之機(jī),所以應(yīng)該給重要網(wǎng)頁一個過期時間。它不僅保證了用戶的安全,也可以減少服務(wù)器的鏈接次數(shù),減少服務(wù)器壓力。可以使用session.timeout=時間,過了一定時間網(wǎng)頁就失效了,如想使用,須再次登陸。
在Ie瀏覽器的工具選項中可以找到此項。SSL協(xié)議作為Web服務(wù)器安全選項,提供了一種虛擬方式來建立與用戶的加密通訊連接。SSL保證了Web站點內(nèi)容的驗證,并能確認(rèn)訪問被限制的Web站點的用戶身份。
⑴通過SSL可以被限制的程序
通過SSL,你可以要求訪問被限制的ASP站點用戶與你的服務(wù)器建立一個加密連接;以防用戶與站點間交換的數(shù)據(jù)被截取。
⑵維護(hù)文件的安全
如果你從沒有得到保護(hù)的虛擬目錄中的asp文件,則SSL將不被應(yīng)用于被包含文件。因此,為了保證使用SSL,應(yīng)確保包含的文件啟用了SSL。
⑶客戶資格認(rèn)證
控制對你的ASP應(yīng)用程序訪問的一種十分安全的方法就是要求用戶使用客戶資格登錄??蛻糍Y格是包含最終用戶身份信息的數(shù)字身份證。如我們進(jìn)行買賣交易時,需要有網(wǎng)銀。用戶通常從委托的第三方組織獲得客戶資格,第三方組織在發(fā)放資格證之前確認(rèn)用戶的身份。每當(dāng)用戶登錄到需要資格驗證的站點時,用戶的Web瀏覽器會先自動向服務(wù)器發(fā)送用戶資格。如果和Web服務(wù)器資格對比正確,那么服務(wù)器就可以許可用戶對ASP應(yīng)用程序訪問。
應(yīng)用程序常常具有在事務(wù)內(nèi)部運(yùn)行的腳本和組件。事務(wù)是一組在服務(wù)器內(nèi)部連續(xù)的,不可中斷的操作,即使該操作包括很多步驟,也只能整體返回操作成功或失敗。用戶可以創(chuàng)建在事務(wù)內(nèi)部運(yùn)行的ASP腳本,如果腳本的任何一部分失敗,整個事務(wù)都將會終止,這樣就提高了某一種操作的安全性。
由于Access數(shù)據(jù)庫加密機(jī)制過于簡單,很容易破解。有效地防止數(shù)據(jù)庫被下載和破解,就成了提高ASP+Access安全性的重中之重。以下兩種方法簡單、有效。
⑴非常規(guī)命名。為Access數(shù)據(jù)庫文件起一個復(fù)雜的名字,并把它放在幾層目錄下。例如,對于某個購物站點的數(shù)據(jù)庫,最好不把它命名為“shop.mdb”或“shopping.mdb”,而是起個非常規(guī)的名字,例如:faq9j345l.mdb,當(dāng)然你自己要記得住。再把它放在如./akkt/kwer/acd/aved5的幾層目錄下,這樣黑客想通過猜的方式得到Access數(shù)據(jù)庫文件名就很難了。
⑵使用ODBC數(shù)據(jù)源。在ASP程序設(shè)計中,如果在不太嚴(yán)格的條件下,為了安全,盡量使用ODBC數(shù)據(jù)源,不把數(shù)據(jù)庫名寫在程序中,當(dāng)然這種方法對計算機(jī)具有依賴性。例如:
可見,數(shù)據(jù)庫名字起得再怪異,隱藏的再深,當(dāng)ASP源代碼失密后,對方也是看得見的,很容易被下載下來。如果使用ODBC,這樣的問題就都隱藏了:
conn.open“ODBC-DSN名”
你可以要求每個希望訪問被限制的ASP內(nèi)容的用戶必須擁有有效的Windows帳號和密碼。每當(dāng)用戶試圖訪問被限制的內(nèi)容時,在操作系統(tǒng)這一層面就被阻攔,Web服務(wù)器進(jìn)行身份驗證,即確認(rèn)用戶身份的有效性。Web服務(wù)器支持以下幾種身份驗證方式:
⑴基本身份驗證 提示用戶輸入用戶名和密碼
Windows身份驗證 從用戶的Web瀏覽器通過加密方式獲取用戶身份信息。Web服務(wù)器僅當(dāng)禁止匿名訪問或Windows文件系統(tǒng)限制匿名訪問時才驗證用戶身份。
⑵保護(hù)原數(shù)據(jù)庫
訪問原數(shù)據(jù)庫的ASP腳本需要Web服務(wù)器計算機(jī)的管理員權(quán)限。在從遠(yuǎn)程計算機(jī)上運(yùn)行這些腳本時,須經(jīng)已通過的身份驗證,如使用 Windows請求/響應(yīng)驗證方式進(jìn)行連接。應(yīng)該為管理asp應(yīng)用創(chuàng)建一個服務(wù)器或目錄并將其目錄安全驗證方式設(shè)置為 Windows請求/響應(yīng)式身份驗證。目前,僅 Microsoft Internet Explorer version 6.0或 更高版本支持 Windows請求/響應(yīng)式身份驗證。
頁面緩沖可以加快網(wǎng)站的瀏覽速度,但由于頁面在計算機(jī)內(nèi)存中的停留給非法用戶提供了越權(quán)瀏覽的機(jī)會。因此,重要的Web頁面必須禁止頁面緩存,強(qiáng)制瀏覽器每次都要向Web服務(wù)器請求新頁面。利用Asp的Response對象的Expires屬性和Clear方法可解決此問題。具體設(shè)置:Response.expires=0 Rsponse.clear,expires表示緩存頁面的有效期,0表示立即過期,clear表示清空緩沖區(qū)。
在使用ASP開發(fā)網(wǎng)頁時要注意以下事項:
(1)不要相信用戶的輸入具有合適的大小或者包含適當(dāng)?shù)淖址驗樗麄兛扇我廨斎?。要對用戶輸入進(jìn)行驗證。最好的辦法是創(chuàng)建一個activeX組件,您可以從ASP頁面中調(diào)用該組件來驗證用戶輸入。也可以使用Server.HTMLEncode和Server.URLEncode這兩個方法的某一個。
(2)不要通過連接用戶輸入的字符串來創(chuàng)建ASP頁中的數(shù)據(jù)庫連接字符串。惡意用戶可以在他們的輸入中插入一些代碼而獲取該數(shù)據(jù)庫的訪問權(quán)限。這就是sql攻擊漏洞。如果你使用的是SQL數(shù)據(jù)庫,那么請使用存儲過程創(chuàng)建數(shù)據(jù)庫連接。
(3)不要使用默認(rèn)的SQL管理員帳戶sa。每個使用SQL的用戶都知道有sa帳戶。創(chuàng)建具有復(fù)雜密碼的其他SQL管理帳戶,并刪除sa帳戶。
(4)存儲客戶端用戶密碼之前,請對這些密碼使用哈希算法加密,進(jìn)行base64編碼,或者使用Server.HTMLEncode或Server.URLEncode進(jìn)行編碼。
(5)不要將安全數(shù)據(jù)存儲在Cookie中或者將輸入字段隱藏在網(wǎng)頁中。
[1]白艷玲.ASP安全問題及解決方案[J].鄭州鐵路職業(yè)技術(shù)學(xué)院學(xué)報,2006,(04).
[2]王艷紅.ASP安全技術(shù)研究[J].北京電子科技學(xué)院學(xué)報,2004,(04).
[3]黃鑫源.淺談 ASP的安全漏洞與應(yīng)對策略[J].電腦知識與技術(shù),2011,(11).