增強Web的安全性_第1頁
增強Web的安全性_第2頁
增強Web的安全性_第3頁
增強Web的安全性_第4頁
增強Web的安全性_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第第頁增強Web的安全性增強Web的安全性

發(fā)表于:2023-05-25來源::點擊數(shù):標簽:web增強安全性

通過互聯(lián)網(wǎng),人們可以做網(wǎng)上交易等各種事情。如何使信息不被竊

通過互聯(lián)網(wǎng),人們可以做網(wǎng)上交易等各種事情。如何使信息不被竊取、站點不被破壞,就成了網(wǎng)絡應用開發(fā)者、網(wǎng)管員的重要責任。本文介紹了幾種提高(Web)站點(安全)的原則和方法。

一、應用環(huán)境

一般來說,提供(數(shù)據(jù)庫)應用服務的Web站點主要由操作系統(tǒng)服務器、數(shù)據(jù)庫(服務器)和Web(服務器)三項構成,由此,我們對Web站點的安全設置就可以從這三方面入手?;诓煌沫h(huán)境配置的Web解決方案,其安全考慮各有側重,但基本的原則是大致相同的。下面我們以基于(Windows)2000AdvancedServer、I信息服務5.0和(SQL)Server2000環(huán)境構建Web解決方案為例,討論Web站點的安全問題。此外,由于目前大多數(shù)網(wǎng)站(開發(fā))都使用Microsoft的.NetFramework,我們將.NetFramework也考慮進去。

二、解決方法

1.Web應用程序?qū)影踩?/p>

Web應用程序?qū)影踩词窃谶M行Web應用開發(fā)時應該考慮的安全因素,這里包括窗體身份驗證、輸入有效性驗證、使用參數(shù)化存儲過程、輸出數(shù)據(jù)HTML編碼、信息加密等內(nèi)容。

(1)窗體身份驗證

窗體身份驗證即是當用戶請求一個安全頁面時,系統(tǒng)要對其進行判斷,如果該用戶已經(jīng)登錄系統(tǒng)并尚未超時,系統(tǒng)將返回此頁面給請求用戶;反之如該用戶尚未登錄,系統(tǒng)就要將此用戶重定向到登錄頁面。

以上所述功能的實現(xiàn)只需對Web.config文件進行如下配置即可。

如果系統(tǒng)中某些頁面不希望被匿名身份用戶訪問,可以對Web.config進行如下配置:

……

……

對進行身份驗證的登錄頁本身,應該采取兩步方式驗證用戶存在且密碼正確,且不可為圖簡便而使用一條SQL語句進行驗證(如果攻擊者攻破網(wǎng)站,并將SQL語句的where子句末尾加上一段永遠為真的判斷語句,則無論何時他都可以通過身份驗證)。

存在安全隱患的身份驗證語句是:select*fromuserswherename=namestrandpassword=passwdstr。

比較安全的用戶身份驗證應該是:判斷用戶是否存在用“selectname,passwordfromuserswherename=namestr”。

如用戶存在,將返回一條包括用戶名和密碼的記錄,然后判斷由數(shù)據(jù)庫返回的密碼和用戶輸入的密碼值:

ifpassword=passwdstr{

//通過驗證后的程序代碼

……

}else{

//未通過驗證后的程序代碼

……

}

為加強用戶名、密碼等這些敏感信息在公網(wǎng)上的安全傳輸,應通過安全套接字層加密后再返回給Web服務器。

(2)輸入有效性驗證

輸入有效性驗證即是對所有用戶輸入的字符范圍進行限制,以防可用于向Web站點發(fā)送惡意腳本的字符被禁止使用。

通過ASP(.NET)的System.Text.RegularExpressions.Regex類提供的功能,用正則表達式對數(shù)據(jù)進行驗證,如下所示:

RegexisNumber=newRegex(“^[0-9]+$”);

if(isNumber.Match(inputData)){

//使用它

……

}

else{

//丟棄它

……

}

正則表達式是用于匹配文本模式的字符和語法元素集合,用于確保查詢字符串是正確且無惡意的。

(3)使用參數(shù)化存儲過程

使用參數(shù)化存儲過程是指在Web應用中,盡可能將對數(shù)據(jù)庫的操作使用存儲過程來完成,而不是動態(tài)構造SQL語句。

將與數(shù)據(jù)庫的交互限制到存儲過程,這通常是增強Web安全的一個最佳方案。如果不存在存儲過程,則SQL查詢必須由Web應用程序動態(tài)構造。如果Web層遭到破壞,攻擊者就可以向數(shù)據(jù)庫查詢中插入惡意命令,以檢索、更改或刪除數(shù)據(jù)庫中存儲的數(shù)據(jù)。使用存儲過程,Web應用程序與數(shù)據(jù)庫的交互操作僅限于通過存儲過程發(fā)送的幾個特定的嚴格類型參數(shù)。每當開發(fā)人員使用.NetFramework調(diào)用存儲過程時,系統(tǒng)都會對發(fā)送到此存儲過程的參數(shù)進行檢查,以確保它們是存儲過程可接受的類型(如整數(shù)、8個字符的字符串等)。這是Web層有效性驗證上的又一個保護層,可確保所有輸入數(shù)據(jù)格式正確,且不能自行構造為可操作的SQL語句。

(4)輸出數(shù)據(jù)HTML編碼

輸出數(shù)據(jù)HTML編碼是指在將任何數(shù)據(jù)返回給用戶前均應采用HTML編碼,以防止跨站點的腳本攻擊。因為攻擊者一旦破壞了數(shù)據(jù)庫,便可向記錄中輸入腳本,此腳本隨后被返回給用戶并在瀏覽器中執(zhí)行。通過HTML編碼,可將大多數(shù)腳本命令自動轉換為無害文本。

通過System.Web.HttpServerUtility類中的HtmlEncode方法可實現(xiàn)HTML編碼,如下所示:

SomeLabel.Text=Server.HtmlEncode(username);

(5)信息加密存儲

信息加密存儲是指對如數(shù)據(jù)庫連接字符串、用戶秘密等敏感信息進行加密存儲,以妥善保護數(shù)據(jù)。

數(shù)據(jù)庫連接字符串存放有包括數(shù)據(jù)庫服務器的位置、數(shù)據(jù)庫名稱和用戶名密碼等數(shù)據(jù)庫連接信息,攻擊者一旦設法讀取字符串就可用它來訪問數(shù)據(jù)庫并對數(shù)據(jù)庫進行惡意破壞。通常我們可以采用以下方法保護加密連接字符串等秘密信息:加密連接字符串,將其存儲在注冊表中,并使用訪問控制列表(ACL)確保只有系統(tǒng)管理員和ASP.NET輔助進程才能訪問注冊表項。通過使用.NetFramework的System.Security.Cryptography類中的TripleDES類提供的功能可實現(xiàn)對信息的加密。

2.Internet信息服務(IIS)層安全

對IIS進行安全配置一般包括如下幾方面內(nèi)容,可最大程度地保障系統(tǒng)安全:

(1)盡可能安裝軟件的最新版本;

(2)盡可能安裝軟件的最新服務包和修補程序;

(3)將磁盤上的默認Web站點位置從c:\inetpub\更改到其他卷,以防止攻擊者通過輸入“..\”作為位置說明輕松訪問C:驅(qū)動器;

(4)使用IIS鎖定工具(IISLockdownTool)刪除應用程序中未使用的所有其他動態(tài)內(nèi)容類型,以減少攻擊者可用來攻擊的區(qū)域;

(5)確保應用程序使用低權限的默認本地服務賬戶(ASP.NET賬戶)運行ASP.NET代碼;

(6)將ASP.NET賬戶添加到IIS鎖定工具創(chuàng)建的本地“Web應用程序組”,以防進程在被偷襲時運行任何未得到授權的命令行可執(zhí)行程序;

(7)修改Web應用程序組權限,使其可運行應用程序需要的如.NetFrameworkC#編譯器和資源轉換器(Cse.exe和Cvtres.exe)等資源;

(8)配置URLScan2.5,使其只允許應用程序中使用的擴展集,并阻止較長的請求(URLScan2.5是由IIS鎖定工具安裝的,是一個ISAPI過濾器,可根據(jù)查詢長度和字符集等規(guī)則監(jiān)視和過濾發(fā)送到IISWeb服務器的所有輸入請求);

(9)設置Web內(nèi)容目錄的訪問權限,授予ASP.NET進程對內(nèi)容文件的讀訪問權限,授予匿名用戶對所提供內(nèi)容的適當只讀訪問權限;

(10)限制對IIS和URLScan的日志目錄的訪問,只有系統(tǒng)賬戶和系統(tǒng)管理員組才具有訪問權限。

3.Windows2000AdvancedServer操作系統(tǒng)層安全

為增強操作系統(tǒng)的安全性,應盡可能安裝當時發(fā)布的最新服務包,盡可能關閉應用程序未用到的服務。下面介紹幾個注冊表值。

(1)創(chuàng)建注冊表項:nolmhash

在Windows2000中,這是一個關鍵字,而在WindowsXP和WindowsServer2023中,這是一個值。

位置:HKLM\System\CurrentControlSet\Control\LSA;

用途:防止操作系統(tǒng)以LM散列格式存儲用戶密碼。此格式只用于不支持NTLM或Kerberos的Windows3.11客戶端。創(chuàng)建和保留此LM散列的風險在于,如果攻擊者設法將以此格式存儲的密碼解密,就可以在網(wǎng)絡上的其他計算機上重復利用這些密碼。

(2)創(chuàng)建注冊表值:NoDefaultExempt

位置:HKLM\System\CurrentControlSet\Services\IPSEC;

用途:默認情況下,IPSec將允許源端口為88的傳入通信查詢IPSec服務,以獲取連接到計算機的信息,而不管使用的是哪種IPSec策略。通過設置此值,除了我們設置的IPSec過濾器允許的通信以外,不允許端口之間進行任何通信。

(3)創(chuàng)建注冊表值:DisableIPSourceRouting

位置:HKLM\System\CurrentControlSet\Services\Tcpip\Parameters;

用途:防止TCP數(shù)據(jù)包顯式確定到最終目標的路由,并防止它要求服務器確定最佳路由。這是一個防止“人在中間”攻擊(即攻擊者通過自己的服務器對數(shù)據(jù)包進行路由,并在數(shù)據(jù)包傳遞期間竊取其中的內(nèi)容)的保護層。

(4)創(chuàng)建注冊表值:SynAttackProtect

位置:HKLM\System\CurrentControlSet\Services\Tcpip\Parameters;

用途:此注冊表項通過限制分配給傳入請求的資源來防止操作系統(tǒng)受到某種SYN-Flood的攻擊。換句話說,這將幫助阻止在客戶端和服務器之間試圖使用SYN(即同步)請求以拒絕服務的攻擊。

4.SQLServer2000數(shù)據(jù)庫服務器層安全

為增強數(shù)據(jù)庫系統(tǒng)的安全性,應盡可能滿足以下原則:

(1)將SQLServer安裝在NTFS分區(qū)上;

(2)安裝當時發(fā)布的最新服務包和修補程序;

(3)限制所支持的身份驗證協(xié)議的數(shù)量(在控制面板→管理工具→本地安全設置→安全設置→本地策略→安全選項→網(wǎng)絡安全:LANManager身份驗證級別中進行設置);

(4)選擇低權限本地賬戶,啟動SQLServer服務;

(5)使用ServicesMMC管理單元停止DistributedTransactionCoordinator(MSDTC)服務,并將其設置為手動啟動,以防數(shù)據(jù)庫運行失誤,并且服務器本身也不會運行COM+應用程序;

(6)禁用應用程序不需要的SQLServer代理和Microsoft搜索服務;

(7)設置ServerNetwork的網(wǎng)絡屬性,由“直接客戶端廣播”改為“隱藏SQLServer”;

(8)如應用程序不使用“命名管道”協(xié)議,則刪除之;

(9)限制數(shù)據(jù)庫用戶只具有用得到的數(shù)據(jù)庫操作權限。

三、小結

以上所列出的增強Web解決方案的各種原則和方法,歸納如下:

1.在原始設計中考慮安全問題,這包括開發(fā)工具采用最新的服務包和修補程序;

2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論