|
設(shè)置安全
如果你期望得到如同Windows NT一樣的安全性或更好的話,我倒是有些好消息可以告訴你。Windows 2000擁有更多的安全選項,更有粒度的安全性,更堅固的應(yīng)用程序安全性。同時,IIS還提供一些新的安全向?qū)椭阍O(shè)置站點的安全。
首先要在在Windows 2000布下的第一道防線和Windows NT一樣-設(shè)置文件和文件夾的NTFS權(quán)限。如果你準(zhǔn)備為某些用戶設(shè)定一些特別的權(quán)限,比如讀寫特定的文件和文件夾,或者執(zhí)行特別的應(yīng)用程序,就需要設(shè)置NTFS的安全性。在設(shè)置權(quán)限的時候要注意,WEB默認(rèn)的匿名用戶仍然是IUSR_machinename,這和在Windows NT中是一樣的。
Windows 2000提供了兩個向?qū)в脕碓O(shè)置證書和分配證書信任列表(Certificate Trust Lists--CTL)。要運行Web Server Certificate Wizard 可用以下步驟:
選擇站點>屬性>切換到Directory Security面板>點擊Server Certificate。 向?qū)С绦驎岢鲆恍╆P(guān)于證書設(shè)置的問題,比如證書的名稱,WEB服務(wù)器的地址。最后會生成證書請求文件,將這個文件及送到權(quán)威的認(rèn)證機構(gòu)才可以得到最終的認(rèn)證證書。
當(dāng)證書安裝到站點后,可以通過運行CTL向?qū)Х峙浣o它一個CTL。操作步驟如下:
選擇站點>屬性>切換到Directory Security面板>點擊EDIT。 權(quán)限向?qū)В≒ermission Wizard)通過給定兩種情況來設(shè)置權(quán)限,它用來設(shè)定虛路徑或站點(WEB Site)是一個開放的站點可由任意人訪問,還是一個安全站點,只能由Windows 2000中的賬戶(Account)所有人訪問。調(diào)用權(quán)限向?qū)У姆椒ㄈ缦拢?br> 選擇站點或虛路徑>選擇ISM的Action菜單中的All Task選項>選擇Permission Wizard 對于一個公共站點,讀權(quán)限對每一個訪問者都是開放的,而管理員擁有完全控制的權(quán)限;這些權(quán)限的設(shè)置可在未來重新設(shè)置并覆蓋現(xiàn)有的權(quán)限設(shè)置,也可以和現(xiàn)有的文件和文件夾的權(quán)限聯(lián)合使用。安全站點有著同樣的選項,匿名用戶不能訪問站點,只有那些合法的Windows 2000賬戶可以訪問站點。
如果使用Permission Wizard設(shè)置WEB站點,確保NTFS權(quán)限和向?qū)峁┑臋?quán)限互相不沖突,并記住要讓NTFS權(quán)限覆蓋向?qū)峁┑臋?quán)限,記住,你可以從NTFS獲得更多的控制。
如果ASP程序需要提供授權(quán)訪問,可以使用IIS提供的認(rèn)證協(xié)議。該協(xié)議名為Digest認(rèn)證,它將用戶的登錄信息進(jìn)行哈希(Hashing—散列法)變換再傳輸?shù)骄W(wǎng)絡(luò)上去。由于哈希變換是單向的,無法將它還原回原始的信息,因此沒有必要進(jìn)行解碼的工作,而信息相對就安全的多。這種方法目前還有一些限制,就是它只能應(yīng)用在IE 5.x或以上的瀏覽器中。只要你使用了合適的瀏覽器,還是有辦法進(jìn)行加密傳輸?shù)摹?br> 其它一些Windows 2000和IIS 5.0中的有關(guān)安全性的變化可能會影響到ASP應(yīng)用程序出現(xiàn)預(yù)想外的問題。在Windows NT中從ASP頁面中初始化一個COM進(jìn)程(through the use of ASP components),如果是一個進(jìn)程內(nèi)組件它會以SYSTEM運行,如果是一個進(jìn)程外的組件它會以IWAM_machinename 運行。因此,在Windows NT中組件比WEB頁的用戶更多的權(quán)利來訪問計算機和它的資源。
在Windows 2000中,用戶通過叫做偽裝(Cloaking)的進(jìn)程訪問ASP應(yīng)用,無論進(jìn)程內(nèi)還是進(jìn)程外組件運行在這個安全環(huán)境中。因此,如果訪問ASP頁面例示了一個組件,該組件進(jìn)行一些操作,如存取文件或系統(tǒng)資源,而訪問者以匿名用戶的身份,這時候你會發(fā)現(xiàn)組件的進(jìn)程會因為安全限制被禁止。
對于NT來說Windows 2000提供了更安全的進(jìn)程,但是如果沒有注意到ASP應(yīng)用使用了外部進(jìn)程,并針對不同的用戶(這些用戶應(yīng)該具有不同的權(quán)限)進(jìn)行廣泛的測試,未來在最終的生產(chǎn)環(huán)境中可能會產(chǎn)生難以預(yù)料的結(jié)果。最起碼你要進(jìn)行完全的測試以保證新的安全特性不會產(chǎn)生意外的結(jié)果。
當(dāng)設(shè)置完IIS 5.0的安全后,就可以將ASP應(yīng)用的頁面,腳本,圖像文件和其他一些素材拷貝到試驗環(huán)境中。這也包括了ASP應(yīng)用所涉及的組件,也包括了將MTS包移植到COM+的應(yīng)用。
如果你的應(yīng)用中包括了第三方提供的ASP組件,那么我們建議你延緩包含這些組件的ASP應(yīng)用的移植工作,直到廠商提供相應(yīng)的版本或者由廠商提供證明以確,F(xiàn)有組件不會在Windows 2000下造成任何問題。
在下一個部分中,我們將詳細(xì)的講述有關(guān)將MTS遷移到COM+中的若干問題。并提供一個樣例文件。
圖3 Throttling and Tracking ASP
<HTML> <HEAD> <TITLE>Throttling and Logging CPU</TITLE> </HEAD> <BODY> <% Dim iisAdminObj Dim iisDirObj ' Access IIsWebServer object for Development Set iisAdminObj = GetObject("IIS://localhost/W3SVC/1") iisAdminObj.CpuAppEnabled = True
' enable throttling iisAdminObj.CpuLimitsEnabled = True
' change logging iisAdminObj.CpuEnableKernelTime = True iisAdminObj.CpuEnableActiveProcs = True iisAdminObj.CpuEnablePageFaults = True ' save data back to metabase iisAdminObj.SetInfo %> </BODY> </HTML>
|