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