Visual Basic .NET 與 Visual C# .NET 程序員需要處理的安全問(wèn)題(二)
發(fā)表時(shí)間:2024-06-21 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]其他資源除了上面的概述中介紹的內(nèi)容外,還有許多其他內(nèi)容可供選擇。以下主題更詳細(xì)地討論了代碼訪問(wèn)安全性: Introduction to Code Access Security(英文) Code Access Security(英文) Security Namespaces in Visual S...
其他資源
除了上面的概述中介紹的內(nèi)容外,還有許多其他內(nèi)容可供選擇。以下主題更詳細(xì)地討論了代碼訪問(wèn)安全性:
Introduction to Code Access Security(英文)
Code Access Security(英文)
Security Namespaces in Visual Studio(英文)
Web 應(yīng)用程序
解決 Web 應(yīng)用程序的安全問(wèn)題,可以保護(hù)您的服務(wù)器免受惡意代碼的攻擊,并保護(hù)數(shù)據(jù)不被破壞。您可以使用多種方法來(lái)保護(hù)服務(wù)器。
通過(guò)禁用 XML Web services 的動(dòng)態(tài)發(fā)現(xiàn)功能來(lái)禁止用戶查找和運(yùn)行您的 XML Web services。
在允許用戶訪問(wèn)服務(wù)器之前,通過(guò)身份驗(yàn)證來(lái)驗(yàn)證用戶的標(biāo)識(shí)。
通過(guò)使用 ASPNET 進(jìn)程標(biāo)識(shí),可以更好地調(diào)整用戶可以使用的資源。
下面將詳細(xì)討論每一種方法。
動(dòng)態(tài)發(fā)現(xiàn)
動(dòng)態(tài)發(fā)現(xiàn)是 .NET 框架的一項(xiàng)功能,它允許 Web 瀏覽器查找在服務(wù)器上運(yùn)行的 XML Web services。找到 XML Web service 后,用戶就可以調(diào)用該 XML Web services 的方法。動(dòng)態(tài)發(fā)現(xiàn)雖然為用戶提供了強(qiáng)大的功能,但同時(shí)也給服務(wù)器帶來(lái)潛在的安全危險(xiǎn)。多數(shù)情況下,您不需要啟用動(dòng)態(tài)發(fā)現(xiàn)功能。安裝 .NET 框架時(shí),動(dòng)態(tài)發(fā)現(xiàn)在默認(rèn)情況下處于禁用狀態(tài)。這并不表示 XML Web services 不可用,而只表示服務(wù)器將不提供可用服務(wù)的目錄?蛻舳巳匀豢梢允褂 XML Web services,但您需要向其提供該服務(wù)的確切位置。
警告:禁用動(dòng)態(tài)發(fā)現(xiàn)后,您需要將 XML Web services 的位置發(fā)送給客戶端。
在部署服務(wù)器上,有兩個(gè)項(xiàng)可以控制 XML Web services 的發(fā)現(xiàn)功能。第一項(xiàng)(machine.config 文件)控制服務(wù)器的整體發(fā)現(xiàn)功能。machine.config 文件是一個(gè)包含控制服務(wù)器上 Web 應(yīng)用程序的設(shè)置的 XML 文件,它位于 \%windows%\Microsoft.NET\Framework\Version\Config 文件夾。此文件包含一個(gè)默認(rèn)情況下被注釋掉的元素。要啟用發(fā)現(xiàn)功能,您需要?jiǎng)h除這些注釋字符。還需要使用 ASPNET 帳戶來(lái)運(yùn)行應(yīng)用程序,如下一節(jié)“ASPNET 進(jìn)程標(biāo)識(shí)”中所述。
<!--<add verb="*" path="*.vsdisco"
type="System.Web.Services.Discovery.DiscoveryRequestHandler,
System.Web.Services, Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>-->
第二項(xiàng)是一個(gè)發(fā)現(xiàn)文件。發(fā)現(xiàn)文件可以是默認(rèn)的發(fā)現(xiàn)文件 (default.vsdisco),也可以是 XML Web services 特定的發(fā)現(xiàn)文件。它是一個(gè) XML 文件,包含有關(guān) XML Web services 文件位置的信息。
要客戶端能夠發(fā)現(xiàn)特定的 XML Web services,您需要在 machine.config 文件中啟用發(fā)現(xiàn)功能,并創(chuàng)建和部署應(yīng)用程序的發(fā)現(xiàn)文件。發(fā)現(xiàn)文件是一個(gè)僅列出不包含 XML Web services 的路徑的 XML 文件。下面提供了一個(gè)示例。有關(guān)創(chuàng)建和部署此文件的完整說(shuō)明,請(qǐng)參閱 Deploying XML Web Services in Managed Code(英文)。
<?xml version="1.0" encoding="utf-8" ?>
<dynamicDiscovery xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-17">
<exclude path="_vti_cnf" />
<exclude path="_vti_pvt" />
<exclude path="_vti_log" />
<exclude path="_vti_script" />
<exclude path="_vti_txt" />
<exclude path="Web References" />
</dynamicDiscovery>
如果您的部署服務(wù)器安裝有 Visual Studio .NET,則 Web 根文件夾將包含默認(rèn)的發(fā)現(xiàn)文件 (default.vsdisco),該文件是在 Visual Studio .NET 的安裝過(guò)程中創(chuàng)建的。如果服務(wù)器中包含此文件并且在 machine.config 文件中啟用了發(fā)現(xiàn)功能,則可以發(fā)現(xiàn)服務(wù)器上的所有 XML Web services。如果要禁止發(fā)現(xiàn) XML Web services,則需要?jiǎng)h除此文件。
警告:如果部署服務(wù)器安裝了 Visual Studio .NET,則在服務(wù)器投入使用之前應(yīng)該刪除 default.vsdisco 文件。
建議您不要在已安裝 Visual Studio .NET 的服務(wù)器上部署 XML Web services。Visual Studio .NET 安裝程序會(huì)將可以使用的文件和用戶都添加到您的系統(tǒng)上。您可以保護(hù)已安裝 Visual Studio .NET 的系統(tǒng)的安全,但是,如果不需要在部署服務(wù)器上安裝 Visual Studio .NET,建議您不要安裝。
有關(guān)啟用動(dòng)態(tài)發(fā)現(xiàn)的詳細(xì)信息,請(qǐng)參閱 Enabling Discovery for an XML Web services(英文)和 Fine-Tuning Discovery Mechanisms(英文)。
身份驗(yàn)證、模擬和委托
默認(rèn)情況下,Web 應(yīng)用程序?qū)⒁阅涿J竭\(yùn)行,也就是說(shuō),應(yīng)用程序不需要任何有關(guān)用戶標(biāo)識(shí)的信息。這對(duì)于那些包含公共信息的站點(diǎn)非常適用。如果要對(duì)訪問(wèn)應(yīng)用程序或其他資源的用戶進(jìn)行控制,則需要向應(yīng)用程序添加身份驗(yàn)證。身份驗(yàn)證是識(shí)別應(yīng)用程序的用戶并驗(yàn)證該用戶是否有權(quán)訪問(wèn)此應(yīng)用程序的過(guò)程。ASP.NET 支持多種身份驗(yàn)證方法。其中最常用的方法有:
匿名 無(wú)需用戶提供任何標(biāo)識(shí)信息。此方法適用于包含公共內(nèi)容的 Web 站點(diǎn)。如果需要個(gè)性化站點(diǎn),則可以使用 cookie。有關(guān)在 ASP.NET 應(yīng)用程序中使用 cookie 的詳細(xì)信息,請(qǐng)參閱 Introduction to Web Forms State Management(英文)。
窗體 應(yīng)用程序向用戶提供一個(gè)登錄窗體,要求用戶提供登錄信息(如姓名和密碼)。窗體將被發(fā)送回服務(wù)器,服務(wù)器將該信息與數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行比較。
基本 基本身份驗(yàn)證是使用 Internet 信息服務(wù) (IIS) 配置的,大部分瀏覽器都支持基本身份驗(yàn)證。如果啟用,瀏覽器將提示用戶輸入姓名和密碼,然后用 Base64 編碼(此編碼易于解密)將信息傳回 ASP.NET 應(yīng)用程序。此方法要求用戶擁有 Windows 帳戶。如果在基本身份驗(yàn)證之外再使用安全套接字層 (SSL),則可以確保此身份驗(yàn)證方法的安全性。有關(guān) ASP.NET 中的 SSL 支持的信息,請(qǐng)參閱 Using Secure Sockets Layer(英文)。
簡(jiǎn)要 簡(jiǎn)要身份驗(yàn)證是使用 IIS 配置的,可用于運(yùn)行 Microsoft Windows® 2000 或 Windows XP 的服務(wù)器。簡(jiǎn)要身份驗(yàn)證提供了比基本身份驗(yàn)證更高的密碼加密級(jí)別。此方法要求用戶擁有存儲(chǔ)在 Microsoft Active Directory® 中的 Windows 帳戶。
集成 Windows 集成 Windows 身份驗(yàn)證類(lèi)似于基本身份驗(yàn)證和簡(jiǎn)要身份驗(yàn)證,唯一區(qū)別是用戶的姓名和密碼不傳回 Web 應(yīng)用程序。此方法尤其適用于 Intranet 環(huán)境。它要求用戶擁有 Windows 帳戶,并且只有 Internet Explorer 瀏覽器支持該方法。
證書(shū) 證書(shū)是安裝在計(jì)算機(jī)中的數(shù)字密鑰。當(dāng)用戶試圖訪問(wèn)服務(wù)器時(shí),需要提供此密鑰。然后服務(wù)器在域或 Active Directory 中對(duì)該證書(shū)進(jìn)行驗(yàn)證。此方法適用于那些需要高度安全性而不惜付出管理證書(shū)成本的應(yīng)用程序。
Passport Microsoft 提供了這種集中的身份驗(yàn)證服務(wù)。Passport 身份驗(yàn)證適用于以下情況:當(dāng)您的 Web 站點(diǎn)與其他 Passport 站點(diǎn)一起使用時(shí),使用戶只需登錄一次就能夠訪問(wèn)所有站點(diǎn);或者您不想維護(hù)用戶數(shù)據(jù)庫(kù)。
身份驗(yàn)證允許您為應(yīng)用程序的用戶授權(quán),但這并不足以使用戶能夠訪問(wèn)資源,例如文件和數(shù)據(jù)庫(kù)。您可以對(duì)資源進(jìn)行配置,使其對(duì)特定的用戶(而不是 Web 應(yīng)用程序本身)可用。在這種情況下,可以使用模擬來(lái)允許用戶訪問(wèn)這些資源。使用模擬時(shí),服務(wù)器進(jìn)程以通過(guò)身份驗(yàn)證的用戶標(biāo)識(shí)來(lái)運(yùn)行。當(dāng)應(yīng)用程序使用模擬并查詢數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)應(yīng)用程序在處理查詢時(shí)會(huì)認(rèn)為查詢來(lái)自用戶,而不是服務(wù)器。如下例所示,可以通過(guò)在應(yīng)用程序的 Web.config 文件中設(shè)置 identity 元素的 impersonate 屬性來(lái)啟用模擬。Web.config 文件作為每個(gè) Web 應(yīng)用程序項(xiàng)目的一部分而創(chuàng)建。
<identity impersonate="true">
比模擬更進(jìn)一步的是委托,委托在訪問(wèn)遠(yuǎn)程資源(其他計(jì)算機(jī))時(shí)使用用戶標(biāo)識(shí)。如下表所示,并非所有的身份驗(yàn)證方法都支持委托。
支持委托 不支持委托
基本 匿名
集成 Windows 簡(jiǎn)要
證書(shū) Passport
窗體
有關(guān)選擇和實(shí)施身份驗(yàn)證方法的詳細(xì)論述,請(qǐng)參閱 Authentication in ASP.NET:.NET Security Guidance(英文)。有關(guān) Web 應(yīng)用程序安全性的詳細(xì)信息,請(qǐng)參閱 Web Application Security at Run Time(英文)。
ASPNET 進(jìn)程標(biāo)識(shí)
當(dāng) Web 應(yīng)用程序開(kāi)始在服務(wù)器上運(yùn)行時(shí),它并不是像以您(Web 應(yīng)用程序的作者)的身份登錄那樣運(yùn)行。而是像使用服務(wù)器上定義的一個(gè) Windows 用戶帳戶登錄那樣運(yùn)行。該帳戶(也稱作標(biāo)識(shí))可以是以下三個(gè)帳戶之一:ASPNET 標(biāo)識(shí)、SYSTEM 標(biāo)識(shí)或自定義標(biāo)識(shí)。該標(biāo)識(shí)是在 machine.config XML 文件(位于服務(wù)器的 \%windows%\Microsoft.NET\Framework\Version\Config 文件夾中)中指定的。以下所示是該元素三種配置方法的簡(jiǎn)化示例。文件中的元素具有若干個(gè)屬性,此示例中并未顯示出來(lái)。
<!-- 選擇 ASPNET 標(biāo)識(shí) -->
<system.web>
<processModel enable="true" username="MACHINE" password="AutoGenerate"/>
</system.web>
<!-- 選擇 SYSTEM 標(biāo)識(shí) -->
<system.web>
<processModel enable="true" username="SYSTEM" password="AutoGenerate"/>
</system.web>
<!-- 選擇自定義標(biāo)識(shí) -->
<system.web>
<processModel enable="true" username="domain\user" password="pwd"/>
</system.web>
ASPNET 是在隨 .NET 框架安裝 machine.config 文件時(shí)所選擇的默認(rèn)標(biāo)識(shí)。ASPNET 帳戶是 Users 組的成員,默認(rèn)情況下,Users 組只擁有最小的權(quán)限。ASPNET 帳戶還擁有其他幾個(gè)權(quán)限,其中包括對(duì) ASP.NET 和 Windows 臨時(shí)目錄的全部權(quán)限。
如果將標(biāo)識(shí)更改為 SYSTEM,則應(yīng)用程序?qū)⒃?SYSTEM 標(biāo)識(shí)下運(yùn)行,該標(biāo)識(shí)擁有 Administrators 組的權(quán)限。SYSTEM 帳戶幾乎可以訪問(wèn)服務(wù)器上的所有資源。
警告:如果服務(wù)器在 SYSTEM 標(biāo)識(shí)下運(yùn)行,受惡意代碼攻擊和數(shù)據(jù)遭到破壞的危險(xiǎn)非常大。
要使用自定義標(biāo)識(shí),必須創(chuàng)建帳戶并按特定方式配置其權(quán)限。有關(guān)創(chuàng)建自定義標(biāo)識(shí)的詳細(xì)信息,請(qǐng)參閱 Authentication in ASP.NET:.NET Security Guidelines(英文)。
默認(rèn)情況下,有幾種系統(tǒng)資源對(duì) ASPNET 帳戶不可用。下面概要介紹了常見(jiàn)的限制和解決方案。建議您使用 ASPNET 帳戶和所介紹的解決方案,而不要在 SYSTEM 標(biāo)識(shí)下運(yùn)行應(yīng)用程序。
文件資源 可以通過(guò) Windows 資源管理器訪問(wèn)各個(gè)文件和文件夾的訪問(wèn)控制列表 (ACL),來(lái)調(diào)整授予 ASPNET 帳戶的文件和文件夾權(quán)限。對(duì) ASPNET 的 ACL 的更改不會(huì)自動(dòng)通過(guò)部署傳播。例如,您可能允許 ASPNET 帳戶對(duì)開(kāi)發(fā)計(jì)算機(jī)上的 c:\picture.bmp 文件擁有寫(xiě)入權(quán)限。當(dāng)部署應(yīng)用程序時(shí),應(yīng)用程序?qū)⒃诹硪慌_(tái)計(jì)算機(jī)上運(yùn)行,該計(jì)算機(jī)也具有 ASPNET 帳戶。您需要在部署計(jì)算機(jī)上為 ASPNET 帳戶添加對(duì)部署計(jì)算機(jī)上 c:\picture.bmp 文件的寫(xiě)入權(quán)限。幸運(yùn)的是,您可以在部署項(xiàng)目中使用自定義操作對(duì) ACL 進(jìn)行更改,但必須對(duì)所要做的更改進(jìn)行跟蹤。
事件日志 ASPNET 帳戶可以向現(xiàn)有日志添加條目,但不能創(chuàng)建新的事件日志類(lèi)別。這時(shí)您可以在使用 ASPNET 帳戶時(shí)啟用模擬,以便創(chuàng)建新的事件日志類(lèi)別。模擬標(biāo)識(shí)必須具有足夠的權(quán)限才能創(chuàng)建事件日志類(lèi)別。如果應(yīng)用程序需要的事件日志可以在投入使用前指定,則可以由部署項(xiàng)目來(lái)創(chuàng)建這些日志。
目錄服務(wù)和 Active Directory 要對(duì)它們進(jìn)行訪問(wèn),需要使用模擬和委托,或者將特定的安全憑據(jù)傳遞給 DirectoryEntry 對(duì)象。如果選擇將特定安全憑據(jù)傳遞給 DirectoryEntry 對(duì)象,則需要確保已正確存儲(chǔ)此信息。
性能計(jì)數(shù)器 ASPNET 帳戶只能寫(xiě)入而不能讀取性能計(jì)數(shù)器,并且不能創(chuàng)建新的性能計(jì)數(shù)器類(lèi)別。這時(shí)您可以在使用 ASPNET 帳戶時(shí)啟用模擬,以便創(chuàng)建新的性能計(jì)數(shù)器類(lèi)別。模擬標(biāo)識(shí)必須具有足夠的權(quán)限才能創(chuàng)建性能計(jì)數(shù)器類(lèi)別。如果應(yīng)用程序需要的性能計(jì)數(shù)器可以在投入使用前指定,則可以由部署項(xiàng)目來(lái)創(chuàng)建這些性能計(jì)數(shù)器。
在 ASPNET 標(biāo)識(shí)下運(yùn)行時(shí)保護(hù)文件資源的安全
注意:本節(jié)中的說(shuō)明適用于運(yùn)行 NTFS 文件系統(tǒng)的系統(tǒng)。如果您的服務(wù)器運(yùn)行的是 FAT32 文件系統(tǒng),請(qǐng)參閱文件系統(tǒng)說(shuō)明文件,了解有關(guān)保護(hù)文件安全的信息。
默認(rèn)情況下,ASPNET 帳戶只擁有 Users 組的讀取和執(zhí)行權(quán)限。如果 Web 應(yīng)用程序需要寫(xiě)入或創(chuàng)建新文件,則可以通過(guò)修改訪問(wèn)控制列表 (ACL) 為特定文件和文件夾授權(quán)。要訪問(wèn)某個(gè)文件的 ACL,可以在 Windows 資源管理器中右擊該文件,然后依次選擇“屬性”和“安全”選項(xiàng)卡。最好是修改特定文件的 ACL,而不是向 ASPNET 帳戶添加通用權(quán)限。最常使用的權(quán)限包括:
讀取 - 數(shù)據(jù)文件和可執(zhí)行文件需要讀取權(quán)限。
寫(xiě)入 - 由應(yīng)用程序更新的數(shù)據(jù)文件需要寫(xiě)入權(quán)限。
執(zhí)行 - 在 Web 應(yīng)用程序中,.asmx 文件為可執(zhí)行文件。
創(chuàng)建 - 要?jiǎng)?chuàng)建文件,需要為要在其中創(chuàng)建文件的文件夾添加創(chuàng)建權(quán)限。
這些權(quán)限適用于:
文件
文件夾
警告:應(yīng)避免允許對(duì)同一文件或目錄同時(shí)擁有執(zhí)行權(quán)限和寫(xiě)入或創(chuàng)建權(quán)限。在這種情況下,用戶可能會(huì)設(shè)法在文件中寫(xiě)入惡意代碼,然后再執(zhí)行。
以下是有關(guān)簡(jiǎn)化授權(quán)過(guò)程的一些技巧:
根據(jù)應(yīng)用程序中文件所需的權(quán)限,將文件分別放入不同的目錄。例如,如果在一個(gè)目錄中只存放讀取/執(zhí)行文件,則只需要為一個(gè)目錄設(shè)置這些權(quán)限,而不必單獨(dú)為每個(gè)文件設(shè)置權(quán)限。請(qǐng)考慮在應(yīng)用程序中為讀取/執(zhí)行、讀取/寫(xiě)入和讀取/創(chuàng)建權(quán)限分別創(chuàng)建目錄。
應(yīng)用程序可以包含在部署時(shí)為空的數(shù)據(jù)文件,還可以包含首次運(yùn)行應(yīng)用程序時(shí)創(chuàng)建文件所需的代碼。這需要為目錄添加創(chuàng)建權(quán)限,這是一種較高的安全設(shè)置。為了避免添加代碼來(lái)創(chuàng)建新的空文件,請(qǐng)考慮在部署時(shí)即給應(yīng)用程序提供一個(gè)空文件。這樣,您只需給該文件添加寫(xiě)入權(quán)限,而不必給目錄添加創(chuàng)建權(quán)限。
在開(kāi)發(fā)應(yīng)用程序時(shí),您將為開(kāi)發(fā)計(jì)算機(jī)上的文件和目錄添加權(quán)限,以便精確調(diào)整應(yīng)用程序的安全級(jí)別。不幸的是,ACL 不會(huì)被傳遞到部署計(jì)算機(jī)上的相應(yīng)文件。要規(guī)劃傳遞這些 ACL,請(qǐng)記住以下幾點(diǎn):
可以在部署程序包中使用自定義操作來(lái)更改 ACL。有關(guān)詳細(xì)信息,請(qǐng)參閱 Custom Actions(英文)。
可以使用第三方工具來(lái)跟蹤和查找所做的更改。
可能需要同系統(tǒng)管理員確認(rèn)每一個(gè)設(shè)置。您需要記錄進(jìn)行更改的原因,以及為什么必須通過(guò)更改設(shè)置來(lái)達(dá)到目的。
使用 ASPNET 標(biāo)識(shí)進(jìn)行調(diào)試
調(diào)試 XML Web services 時(shí),如果在 machine.config 文件中定義了 ASPNET 標(biāo)識(shí),將使用該標(biāo)識(shí)來(lái)調(diào)用此 XML Web services。默認(rèn)情況下,ASPNET 標(biāo)識(shí)不是 Debugger Users 組的成員(請(qǐng)參見(jiàn)下一節(jié)“Visual Studio .NET 開(kāi)發(fā)環(huán)境中的安全機(jī)制”),因此不能在調(diào)試過(guò)程中訪問(wèn) XML Web services 代碼。要調(diào)試 XML Web services,請(qǐng)打開(kāi) XML Web services 的代碼并設(shè)置一個(gè)斷點(diǎn)。
建議您在測(cè)試計(jì)算機(jī)(而不是部署計(jì)算機(jī))上進(jìn)行調(diào)試。這將在下一節(jié)“Visual Studio .NET 開(kāi)發(fā)環(huán)境中的安全機(jī)制”中討論。
有關(guān)配置進(jìn)程標(biāo)識(shí)的詳細(xì)信息,請(qǐng)參閱 ASP.NET Process Identity(英文)和 ASP.NET Impersonation(英文)。
Visual Studio .NET 開(kāi)發(fā)環(huán)境中的安全機(jī)制
除了保護(hù)服務(wù)器的安全外,還要保護(hù)開(kāi)發(fā)計(jì)算機(jī)免受惡意代碼的攻擊和數(shù)據(jù)破壞。您可以利用開(kāi)發(fā)環(huán)境中的多種機(jī)制來(lái)保護(hù)開(kāi)發(fā)服務(wù)器的安全:
VS Developers 和 Debuggers 安裝 Visual Studio .NET 時(shí)將添加這兩個(gè)帳戶組。VS Developers 組具有在服務(wù)器上創(chuàng)建和開(kāi)發(fā) Web 應(yīng)用程序的必要文件、共享和 IIS 權(quán)限。Debuggers 組可以在特定計(jì)算機(jī)(本地或遠(yuǎn)程)上調(diào)試進(jìn)程。這兩個(gè)組都是服務(wù)器上具有很大權(quán)限的用戶,可以訪問(wèn)大多數(shù)資源。有關(guān)詳細(xì)信息,請(qǐng)參閱 Web Application Security at Design Time in Visual Studio(英文)。
調(diào)試 建議您在測(cè)試計(jì)算機(jī)(而不是部署計(jì)算機(jī))上進(jìn)行調(diào)試。如果必須在部署服務(wù)器上調(diào)試,請(qǐng)僅安裝遠(yuǎn)程調(diào)試組件,并在完成調(diào)試后卸載該組件。請(qǐng)?jiān)诿摍C(jī)狀態(tài)下調(diào)試服務(wù)器。有關(guān)詳細(xì)信息,請(qǐng)參閱 Introduction to Web Application Debugging(英文)。
部署 對(duì)于大多數(shù)應(yīng)用程序,只需要在服務(wù)器上安裝 .NET 框架就足夠了。如果在部署計(jì)算機(jī)上安裝了 Visual Studio .NET 或 Visual Studio .NET 服務(wù)器組件,則 VS Developers 組和 Debuggers 組都將出現(xiàn)在部署計(jì)算機(jī)上。您需要對(duì) VS Developers 的成員和 Debugger 用戶加以限制。此外,可能還需要禁用動(dòng)態(tài)發(fā)現(xiàn)。
警告:強(qiáng)烈建議您不要在部署服務(wù)器上安裝 Visual Studio。
Visual Studio .NET 的“復(fù)制項(xiàng)目”功能包括使用配置文件 (Web.config) 部署應(yīng)用程序的選項(xiàng),該配置文件不同于開(kāi)發(fā)中所使用的配置文件。開(kāi)發(fā)文件可能啟用了調(diào)試,在部署后,將允許用戶在引發(fā)異常時(shí)檢查調(diào)用堆棧。建議您使用不允許調(diào)試的配置文件進(jìn)行部署。
總結(jié)
保護(hù)資源的安全是一個(gè)涉及多種技術(shù)和整個(gè)開(kāi)發(fā)周期的過(guò)程。通過(guò)對(duì)應(yīng)用程序進(jìn)行周密的設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和部署,您可以創(chuàng)建非常安全的應(yīng)用程序?梢允褂糜 ASP.NET、操作系統(tǒng)和 Web 瀏覽器提供的安全技術(shù)來(lái)保護(hù)應(yīng)用程序的安全。