維護(hù)ASP應(yīng)用程序的安全-電腦教程
千萬不要輕視正確配置安全設(shè)置的重要性。如果不正確配置安全設(shè)置,不但會(huì)使您的 ASP 應(yīng)用程序遭受不必要的篡改,而且會(huì)妨礙正當(dāng)用戶訪問您的 .asp 文件。
Web 服務(wù)器提供了各種方法來保護(hù)您的 ASP 應(yīng)用程序免受未授權(quán)的訪問和篡改。在您讀完本主題下的安全信息之后,請(qǐng)花一定的時(shí)間仔細(xì)檢查一下您的 Windows NT 和 Web 服務(wù)器安全性文檔。
NTFS 權(quán)限
您可以通過為單獨(dú)的文件和目錄應(yīng)用 NTFS 訪問權(quán)限來保護(hù) ASP 應(yīng)用程序文件。NTFS 權(quán)限是 Web 服務(wù)器安全性的基礎(chǔ),它定義了一個(gè)或一組用戶訪問文件和目錄的不同級(jí)別。當(dāng)擁有 Windows NT 有效帳號(hào)的用戶試圖訪問一個(gè)有權(quán)限限制的文件時(shí),計(jì)算機(jī)將檢查文件的 訪問控制表 (ACL)。該表定義了不同用戶和用戶組所被賦予的權(quán)限。如果用戶的帳號(hào)具有打開文件的權(quán)限,計(jì)算機(jī)則允許該用戶訪問文件。例如,Web 服務(wù)器上的 Web 應(yīng)用程序的所有者需要有“更改”權(quán)限來查看、更改和刪除應(yīng)用程序的 .asp 文件。但是,訪問該應(yīng)用程序的公共用戶應(yīng)僅被授予“只讀”權(quán)限,以便將其限制為只能查看而不能更改應(yīng)用程序的 Web 頁。
維護(hù) Global.asa 的安全
為了充分保護(hù) ASP 應(yīng)用程序,一定要在應(yīng)用程序的 Global.asa 文件上為適當(dāng)?shù)挠脩艋蛴脩艚M設(shè)置 NTFS 文件權(quán)限。如果 Global.asa 包含向?yàn)g覽器返回信息的命令而您沒有保護(hù) Global.asa 文件,則信息將被返回給瀏覽器,即便應(yīng)用程序的其他文件被保護(hù)。
注意 一定要對(duì)應(yīng)用程序的文件應(yīng)用統(tǒng)一的 NTFS 權(quán)限。例如,如果您不小心過度限制了一應(yīng)用程序需要包含的文件的 NTFS 權(quán)限,則用戶可能無法查看或運(yùn)行該應(yīng)用程序。為了防止此類問題,在為您的應(yīng)用程序分配 NTFS 權(quán)限之前應(yīng)仔細(xì)計(jì)劃。
Web 服務(wù)器權(quán)限
您可以通過配置您的 Web 服務(wù)器的權(quán)限來限制所有用戶查看、運(yùn)行和操作您的 ASP 頁的方式。不同于 NTFS 權(quán)限提供的控制特定用戶對(duì)應(yīng)用程序文件和目錄的訪問方式, Web 服務(wù)器權(quán)限應(yīng)用于所有用戶,并且不區(qū)分用戶帳號(hào)的類型。
對(duì)于要運(yùn)行您的 ASP 應(yīng)用程序的用戶,在設(shè)置 Web 服務(wù)器權(quán)限時(shí),必須遵循下列原則:
對(duì)包含 .asp 文件的虛擬目錄允許“讀”或“腳本”權(quán)限。
對(duì) .asp 文件和其他包含腳本的文件(如 .htm 文件等)所在的虛目錄允許“讀”和“腳本”權(quán)限。
對(duì)包含 .asp 文件和其他需要“執(zhí)行”權(quán)限才能運(yùn)行的文件(如 .exe 和 .dll 文件等)的虛目錄允許“讀”和“執(zhí)行”權(quán)限。
維護(hù)ASP應(yīng)用程序的安全
腳本映射文件
應(yīng)用程序的腳本映射保證了 Web 服務(wù)器不會(huì)意外地下載 .asp 文件的源代碼。例如,即使您為包含了某個(gè) .asp 文件的目錄設(shè)置了“讀”權(quán)限,只要該 .asp 文件隸屬于某個(gè)腳本映射應(yīng)用程序,那么您的 Web 服務(wù)器就不會(huì)將該文件的源代碼返回給用戶。
Cookie 安全性
ASP 使用 SessionID cookie 跟蹤應(yīng)用程序訪問或會(huì)話期間特定的 Web 瀏覽器的信息。這就是說,帶有相應(yīng)的 cookie 的 HTTP 請(qǐng)求被認(rèn)為是來自同一 Web 瀏覽器。Web 服務(wù)器可以使用 SessionID cookies 配置帶有用戶特定會(huì)話信息的 ASP 應(yīng)用程序。例如,如果您的應(yīng)用程序是一個(gè)允許用戶選擇和購買 CD 唱盤的聯(lián)機(jī)音樂商店,就可以用 SessionID 跟蹤用戶漫游整個(gè)應(yīng)用程序時(shí)的選擇。
SessionID 能否被黑客猜中?
為了防止計(jì)算機(jī)黑客猜中 SessionID cookie 并獲得對(duì)合法用戶的會(huì)話變量的訪問,Web 服務(wù)器為每個(gè) SessionID 指派一個(gè)隨機(jī)生成號(hào)碼。每當(dāng)用戶的 Web 瀏覽器返回一個(gè) SessionID cookie 時(shí),服務(wù)器取出 SessionID 和被賦予的數(shù)字,接著檢查是否與存儲(chǔ)在服務(wù)器上的生成號(hào)碼一致。若兩個(gè)號(hào)碼一致,將允許用戶訪問會(huì)話變量。這一技術(shù)的有效性在于被賦予的數(shù)字的長度(64 位),此長度使計(jì)算機(jī)黑客猜中 SessionID 從而竊取用戶的活動(dòng)會(huì)話的可能性幾乎為 0。
加密重要的 SessionID Cookie
截獲了用戶 sessionID cookie 的計(jì)算機(jī)黑客可以使用此 cookie 假冒該用戶。如果 ASP 應(yīng)用程序包含私人信息,信用卡或銀行帳戶號(hào)碼,擁有竊取的 cookie 的計(jì)算機(jī)黑客就可以在應(yīng)用程序中開始一個(gè)活動(dòng)會(huì)話并獲取這些信息。您可以通過對(duì)您的 Web 服務(wù)器和用戶的瀏覽器間的通訊鏈路加密來防止 SessionID cookie 被截獲。
使用身份驗(yàn)證機(jī)制保護(hù)被限制的 ASP 內(nèi)容
您可以要求每個(gè)試圖訪問被限制的 ASP 內(nèi)容的用戶必須要有有效的 Windows NT 帳號(hào)的用戶名和密碼。每當(dāng)用戶試圖訪問被限制的內(nèi)容時(shí),Web 服務(wù)器將進(jìn)行身份驗(yàn)證,即確認(rèn)用戶身份,以檢查用戶是否擁有有效的 Windows NT 帳號(hào)。
Web 服務(wù)器支持以下幾種身份驗(yàn)證方式:
基本身份驗(yàn)證 提示用戶輸入用戶名和密碼。
Windows NT 請(qǐng)求/響應(yīng)式身份驗(yàn)證 從用戶的 Web 瀏覽器通過加密方式獲取用戶身份信息。
然而,Web 服務(wù)器僅當(dāng)禁止匿名訪問或 Windows NT 文件系統(tǒng)的權(quán)限限制匿名訪問時(shí)才驗(yàn)證用戶身份。
保護(hù)元數(shù)據(jù)庫
訪問元數(shù)據(jù)庫的 ASP 腳本需要 Web 服務(wù)器所運(yùn)行的計(jì)算機(jī)的管理員權(quán)限。在從遠(yuǎn)程計(jì)算機(jī)上運(yùn)行這些腳本時(shí),須經(jīng)已通過身份驗(yàn)證的連接,如使用 Windows NT 請(qǐng)求/響應(yīng)驗(yàn)證方式進(jìn)行連接。應(yīng)該為管理級(jí) .asp 文件創(chuàng)建一個(gè)服務(wù)器或目錄并將其目錄安全驗(yàn)證方式設(shè)置為 Windows NT 請(qǐng)求/響應(yīng)式身份驗(yàn)證。目前,僅 Microsoft Internet Explorer 2.0 或更高版本支持 Windows NT 請(qǐng)求/響應(yīng)式身份驗(yàn)證。
維護(hù)ASP應(yīng)用程序的安全
使用 SSL 維護(hù)應(yīng)用程序的安全
Secure Sockets Layer (SSL) 3.0 協(xié)議作為 Web 服務(wù)器安全特性,提供了一種安全的虛擬透明方式來建立與用戶的加密通訊連接。SSL 保證了 Web 內(nèi)容的驗(yàn)證,并能可靠地確認(rèn)訪問被限制的 Web 站點(diǎn)的用戶的身份。
通過 SSL,您可以要求試圖訪問被限制的 ASP 應(yīng)用程序的用戶與您的服務(wù)器建立一個(gè)加密連接;以防用戶與應(yīng)用程序間交換的重要信息被截取。
維護(hù)包含文件的安全
如果您從位于沒有保護(hù)的虛擬根目錄中的 .asp 文件中包含了位于啟用了 SSL 的目錄中的文件,則 SSL 將不被應(yīng)用于被包含文件。因此,為了保證應(yīng)用 SSL,應(yīng)確保包含及被包含的文件都位于啟用了 SSL 的目錄中。
客戶資格認(rèn)證
控制對(duì)您的 ASP 應(yīng)用程序訪問的一種十分安全的方法是要求用戶使用 客戶資格 登錄。客戶資格是包含用戶身份信息的數(shù)字身份證,它的作用與傳統(tǒng)的諸如護(hù)照或駕駛執(zhí)照等身份證明相同。用戶通常從委托的第三方組織獲得客戶資格,第三方組織在發(fā)放資格證之前確認(rèn)用戶的身份信息。(通常,這類組織要求姓名、地址、電話號(hào)碼及所在組織名稱;此類信息的詳細(xì)程度隨給予的身份等級(jí)而異。)
每當(dāng)用戶試圖登錄到需要資格驗(yàn)證的應(yīng)用程序時(shí),用戶的 Web 瀏覽器會(huì)自動(dòng)向服務(wù)器發(fā)送用戶資格。如果 Web 服務(wù)器的 Secure Sockets Layer (SSL) 資格映射特性配置正確,那么服務(wù)器就可以在許可用戶對(duì) ASP 應(yīng)用程序訪問之前對(duì)其身份進(jìn)行確認(rèn)。
用于處理資格證明的 ASP 腳本
作為 ASP 應(yīng)用程序開發(fā)人員,您可以編寫腳本來檢查資格是否存在并讀取資格字段。例如,您可以從資格證明中訪問用戶名字段和公司名字段。Active Server Pages 在 Request 對(duì)象的 ClientCertificate 集合中保存資格信息。
必須將 Web 服務(wù)器配置為接受或需要客戶資格,然后才能通過 ASP 處理客戶資格;否則,ClientCertificate 集合將為空。

![]() ![]() |
![]() |