Visual Basic .NET 與 Visual C# .NET 程序員需要處理的安全問題(二)
發(fā)表時(shí)間:2024-06-21 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]其他資源除了上面的概述中介紹的內(nèi)容外,還有許多其他內(nèi)容可供選擇。以下主題更詳細(xì)地討論了代碼訪問安全性: Introduction to Code Access Security(英文) Code Access Security(英文) Security Namespaces in Visual S...
其他資源
除了上面的概述中介紹的內(nèi)容外,還有許多其他內(nèi)容可供選擇。以下主題更詳細(xì)地討論了代碼訪問安全性:
Introduction to Code Access Security(英文)
Code Access Security(英文)
Security Namespaces in Visual Studio(英文)
Web 應(yīng)用程序
解決 Web 應(yīng)用程序的安全問題,可以保護(hù)您的服務(wù)器免受惡意代碼的攻擊,并保護(hù)數(shù)據(jù)不被破壞。您可以使用多種方法來保護(hù)服務(wù)器。
通過禁用 XML Web services 的動(dòng)態(tài)發(fā)現(xiàn)功能來禁止用戶查找和運(yùn)行您的 XML Web services。
在允許用戶訪問服務(wù)器之前,通過身份驗(yàn)證來驗(yàn)證用戶的標(biāo)識(shí)。
通過使用 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ù)器帶來潛在的安全危險(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 帳戶來運(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)建和部署此文件的完整說明,請(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 的安裝過程中創(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)行,也就是說,應(yīng)用程序不需要任何有關(guān)用戶標(biāo)識(shí)的信息。這對(duì)于那些包含公共信息的站點(diǎn)非常適用。如果要對(duì)訪問應(yīng)用程序或其他資源的用戶進(jìn)行控制,則需要向應(yīng)用程序添加身份驗(yàn)證。身份驗(yàn)證是識(shí)別應(yīng)用程序的用戶并驗(yàn)證該用戶是否有權(quán)訪問此應(yīng)用程序的過程。ASP.NET 支持多種身份驗(yàn)證方法。其中最常用的方法有:
匿名 無需用戶提供任何標(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ù)倉庫進(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)證類似于基本身份驗(yàn)證和簡(jiǎn)要身份驗(yàn)證,唯一區(qū)別是用戶的姓名和密碼不傳回 Web 應(yīng)用程序。此方法尤其適用于 Intranet 環(huán)境。它要求用戶擁有 Windows 帳戶,并且只有 Internet Explorer 瀏覽器支持該方法。
證書 證書是安裝在計(jì)算機(jī)中的數(shù)字密鑰。當(dāng)用戶試圖訪問服務(wù)器時(shí),需要提供此密鑰。然后服務(wù)器在域或 Active Directory 中對(duì)該證書進(jìn)行驗(yàn)證。此方法適用于那些需要高度安全性而不惜付出管理證書成本的應(yīng)用程序。
Passport Microsoft 提供了這種集中的身份驗(yàn)證服務(wù)。Passport 身份驗(yàn)證適用于以下情況:當(dāng)您的 Web 站點(diǎn)與其他 Passport 站點(diǎn)一起使用時(shí),使用戶只需登錄一次就能夠訪問所有站點(diǎn);或者您不想維護(hù)用戶數(shù)據(jù)庫。
身份驗(yàn)證允許您為應(yīng)用程序的用戶授權(quán),但這并不足以使用戶能夠訪問資源,例如文件和數(shù)據(jù)庫。您可以對(duì)資源進(jìn)行配置,使其對(duì)特定的用戶(而不是 Web 應(yīng)用程序本身)可用。在這種情況下,可以使用模擬來允許用戶訪問這些資源。使用模擬時(shí),服務(wù)器進(jìn)程以通過身份驗(yàn)證的用戶標(biāo)識(shí)來運(yùn)行。當(dāng)應(yīng)用程序使用模擬并查詢數(shù)據(jù)庫時(shí),數(shù)據(jù)庫應(yīng)用程序在處理查詢時(shí)會(huì)認(rèn)為查詢來自用戶,而不是服務(wù)器。如下例所示,可以通過在應(yīng)用程序的 Web.config 文件中設(shè)置 identity 元素的 impersonate 屬性來啟用模擬。Web.config 文件作為每個(gè) Web 應(yīng)用程序項(xiàng)目的一部分而創(chuàng)建。
<identity impersonate="true">
比模擬更進(jìn)一步的是委托,委托在訪問遠(yuǎn)程資源(其他計(jì)算機(jī))時(shí)使用用戶標(biāo)識(shí)。如下表所示,并非所有的身份驗(yàn)證方法都支持委托。
支持委托 不支持委托
基本 匿名
集成 Windows 簡(jiǎn)要
證書 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)用程序開始在服務(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è)屬性,此示例中并未顯示出來。
<!-- 選擇 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ù)器上的所有資源。
警告:如果服務(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 帳戶不可用。下面概要介紹了常見的限制和解決方案。建議您使用 ASPNET 帳戶和所介紹的解決方案,而不要在 SYSTEM 標(biāo)識(shí)下運(yùn)行應(yīng)用程序。
文件資源 可以通過 Windows 資源管理器訪問各個(gè)文件和文件夾的訪問控制列表 (ACL),來調(diào)整授予 ASPNET 帳戶的文件和文件夾權(quán)限。對(duì) ASPNET 的 ACL 的更改不會(huì)自動(dòng)通過部署傳播。例如,您可能允許 ASPNET 帳戶對(duì)開發(fā)計(jì)算機(jī)上的 c:\picture.bmp 文件擁有寫入權(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 文件的寫入權(quán)限。幸運(yùn)的是,您可以在部署項(xiàng)目中使用自定義操作對(duì) ACL 進(jìn)行更改,但必須對(duì)所要做的更改進(jìn)行跟蹤。
事件日志 ASPNET 帳戶可以向現(xiàn)有日志添加條目,但不能創(chuàng)建新的事件日志類別。這時(shí)您可以在使用 ASPNET 帳戶時(shí)啟用模擬,以便創(chuàng)建新的事件日志類別。模擬標(biāo)識(shí)必須具有足夠的權(quán)限才能創(chuàng)建事件日志類別。如果應(yīng)用程序需要的事件日志可以在投入使用前指定,則可以由部署項(xiàng)目來創(chuàng)建這些日志。
目錄服務(wù)和 Active Directory 要對(duì)它們進(jìn)行訪問,需要使用模擬和委托,或者將特定的安全憑據(jù)傳遞給 DirectoryEntry 對(duì)象。如果選擇將特定安全憑據(jù)傳遞給 DirectoryEntry 對(duì)象,則需要確保已正確存儲(chǔ)此信息。
性能計(jì)數(shù)器 ASPNET 帳戶只能寫入而不能讀取性能計(jì)數(shù)器,并且不能創(chuàng)建新的性能計(jì)數(shù)器類別。這時(shí)您可以在使用 ASPNET 帳戶時(shí)啟用模擬,以便創(chuàng)建新的性能計(jì)數(shù)器類別。模擬標(biāo)識(shí)必須具有足夠的權(quán)限才能創(chuàng)建性能計(jì)數(shù)器類別。如果應(yīng)用程序需要的性能計(jì)數(shù)器可以在投入使用前指定,則可以由部署項(xiàng)目來創(chuàng)建這些性能計(jì)數(shù)器。
在 ASPNET 標(biāo)識(shí)下運(yùn)行時(shí)保護(hù)文件資源的安全
注意:本節(jié)中的說明適用于運(yùn)行 NTFS 文件系統(tǒng)的系統(tǒng)。如果您的服務(wù)器運(yùn)行的是 FAT32 文件系統(tǒng),請(qǐng)參閱文件系統(tǒng)說明文件,了解有關(guān)保護(hù)文件安全的信息。
默認(rèn)情況下,ASPNET 帳戶只擁有 Users 組的讀取和執(zhí)行權(quán)限。如果 Web 應(yīng)用程序需要寫入或創(chuàng)建新文件,則可以通過修改訪問控制列表 (ACL) 為特定文件和文件夾授權(quán)。要訪問某個(gè)文件的 ACL,可以在 Windows 資源管理器中右擊該文件,然后依次選擇“屬性”和“安全”選項(xiàng)卡。最好是修改特定文件的 ACL,而不是向 ASPNET 帳戶添加通用權(quán)限。最常使用的權(quán)限包括:
讀取 - 數(shù)據(jù)文件和可執(zhí)行文件需要讀取權(quán)限。
寫入 - 由應(yīng)用程序更新的數(shù)據(jù)文件需要寫入權(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)限和寫入或創(chuàng)建權(quán)限。在這種情況下,用戶可能會(huì)設(shè)法在文件中寫入惡意代碼,然后再執(zhí)行。
以下是有關(guān)簡(jiǎn)化授權(quán)過程的一些技巧:
根據(jù)應(yīng)用程序中文件所需的權(quán)限,將文件分別放入不同的目錄。例如,如果在一個(gè)目錄中只存放讀取/執(zhí)行文件,則只需要為一個(gè)目錄設(shè)置這些權(quán)限,而不必單獨(dú)為每個(gè)文件設(shè)置權(quán)限。請(qǐng)考慮在應(yīng)用程序中為讀取/執(zhí)行、讀取/寫入和讀取/創(chuàng)建權(quán)限分別創(chuàng)建目錄。
應(yīng)用程序可以包含在部署時(shí)為空的數(shù)據(jù)文件,還可以包含首次運(yùn)行應(yīng)用程序時(shí)創(chuàng)建文件所需的代碼。這需要為目錄添加創(chuàng)建權(quán)限,這是一種較高的安全設(shè)置。為了避免添加代碼來創(chuàng)建新的空文件,請(qǐng)考慮在部署時(shí)即給應(yīng)用程序提供一個(gè)空文件。這樣,您只需給該文件添加寫入權(quán)限,而不必給目錄添加創(chuàng)建權(quán)限。
在開發(fā)應(yīng)用程序時(shí),您將為開發(fā)計(jì)算機(jī)上的文件和目錄添加權(quán)限,以便精確調(diào)整應(yīng)用程序的安全級(jí)別。不幸的是,ACL 不會(huì)被傳遞到部署計(jì)算機(jī)上的相應(yīng)文件。要規(guī)劃傳遞這些 ACL,請(qǐng)記住以下幾點(diǎn):
可以在部署程序包中使用自定義操作來更改 ACL。有關(guān)詳細(xì)信息,請(qǐng)參閱 Custom Actions(英文)。
可以使用第三方工具來跟蹤和查找所做的更改。
可能需要同系統(tǒng)管理員確認(rèn)每一個(gè)設(shè)置。您需要記錄進(jìn)行更改的原因,以及為什么必須通過更改設(shè)置來達(dá)到目的。
使用 ASPNET 標(biāo)識(shí)進(jìn)行調(diào)試
調(diào)試 XML Web services 時(shí),如果在 machine.config 文件中定義了 ASPNET 標(biāo)識(shí),將使用該標(biāo)識(shí)來調(diào)用此 XML Web services。默認(rèn)情況下,ASPNET 標(biāo)識(shí)不是 Debugger Users 組的成員(請(qǐng)參見下一節(jié)“Visual Studio .NET 開發(fā)環(huán)境中的安全機(jī)制”),因此不能在調(diào)試過程中訪問 XML Web services 代碼。要調(diào)試 XML Web services,請(qǐng)打開 XML Web services 的代碼并設(shè)置一個(gè)斷點(diǎn)。
建議您在測(cè)試計(jì)算機(jī)(而不是部署計(jì)算機(jī))上進(jìn)行調(diào)試。這將在下一節(jié)“Visual Studio .NET 開發(fā)環(huán)境中的安全機(jī)制”中討論。
有關(guān)配置進(jìn)程標(biāo)識(shí)的詳細(xì)信息,請(qǐng)參閱 ASP.NET Process Identity(英文)和 ASP.NET Impersonation(英文)。
Visual Studio .NET 開發(fā)環(huán)境中的安全機(jī)制
除了保護(hù)服務(wù)器的安全外,還要保護(hù)開發(fā)計(jì)算機(jī)免受惡意代碼的攻擊和數(shù)據(jù)破壞。您可以利用開發(fā)環(huán)境中的多種機(jī)制來保護(hù)開發(fā)服務(wù)器的安全:
VS Developers 和 Debuggers 安裝 Visual Studio .NET 時(shí)將添加這兩個(gè)帳戶組。VS Developers 組具有在服務(wù)器上創(chuàng)建和開發(fā) Web 應(yīng)用程序的必要文件、共享和 IIS 權(quán)限。Debuggers 組可以在特定計(jì)算機(jī)(本地或遠(yuǎn)程)上調(diào)試進(jìn)程。這兩個(gè)組都是服務(wù)器上具有很大權(quá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),該配置文件不同于開發(fā)中所使用的配置文件。開發(fā)文件可能啟用了調(diào)試,在部署后,將允許用戶在引發(fā)異常時(shí)檢查調(diào)用堆棧。建議您使用不允許調(diào)試的配置文件進(jìn)行部署。
總結(jié)
保護(hù)資源的安全是一個(gè)涉及多種技術(shù)和整個(gè)開發(fā)周期的過程。通過對(duì)應(yīng)用程序進(jìn)行周密的設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和部署,您可以創(chuàng)建非常安全的應(yīng)用程序?梢允褂糜 ASP.NET、操作系統(tǒng)和 Web 瀏覽器提供的安全技術(shù)來保護(hù)應(yīng)用程序的安全。