Ochrana připojovacích řetězců a dalších konfiguračních údajů (C#)
Aplikace ASP.NET obvykle ukládá informace o konfiguraci do souboru Web.config. Některé z těchto informací jsou citlivé a vyžadují ochranu. Ve výchozím nastavení nebude tento soubor obsluhován návštěvníkovi webu, ale správce nebo hacker může získat přístup k systému souborů webového serveru a zobrazit obsah souboru. V tomto kurzu zjistíme, že ASP.NET 2.0 nám umožňuje chránit citlivé informace šifrováním oddílů Web.config souboru.
Úvod
Informace o konfiguraci pro ASP.NET aplikace se běžně ukládají do souboru XML s názvem Web.config
. V průběhu těchto kurzů jsme několikkrát aktualizovali Web.config
. Například při vytváření Northwind
typed dataSet v prvním kurzu se do oddílu <connectionStrings>
automaticky přidaly Web.config
informace o připojovací řetězec. Později jsme v kurzu Stránky předlohy a Navigace na webu ručně aktualizovali Web.config
a přidali <pages>
prvek označující, že všechny ASP.NET stránky v našem projektu by měly používat DataWebControls
motiv.
Vzhledem k tomu Web.config
, že mohou obsahovat citlivá data, jako jsou připojovací řetězce, je důležité, aby byl obsah Web.config
uchován v bezpečí a skrytý před neoprávněnými diváky. Ve výchozím nastavení všechny požadavky HTTP na soubor s .config
příponou zpracovává modul ASP.NET, který vrátí zprávu Tento typ stránky není obsluhován zobrazenou na obrázku 1. To znamená, že návštěvníci nemohou zobrazit obsah souboru Web.config
jednoduše zadáním http://www.YourServer.com/Web.config do adresního řádku prohlížeče.
Obrázek 1: Návštěva Web.config
prostřednictvím prohlížeče vrátí zprávu Tento typ stránky se neobslouží Zpráva (kliknutím zobrazíte obrázek v plné velikosti).
Ale co když útočník najde nějaké jiné zneužití, které mu umožní zobrazit obsah vašeho Web.config
souboru? Co by mohl útočník s touto informací dělat a jaké kroky je možné provést k další ochraně citlivých informací v rámci Web.config
? Většina oddílů v Web.config
souboru naštěstí citlivé informace neobsahuje. Jakou škodu může útočník způsobit, když zná název výchozího motivu používaného vašimi ASP.NET stránkami?
Některé Web.config
části ale obsahují citlivé informace, které můžou zahrnovat připojovací řetězce, uživatelská jména, hesla, názvy serverů, šifrovací klíče atd. Tyto informace se obvykle nacházejí v následujících Web.config
částech:
<appSettings>
<connectionStrings>
<identity>
<sessionState>
V tomto kurzu se podíváme na techniky ochrany takových citlivých informací o konfiguraci. Jak uvidíme, rozhraní .NET Framework verze 2.0 obsahuje systém chráněných konfigurací, který programově šifruje a dešifruje vybrané konfigurační oddíly.
Poznámka
Tento kurz končí tím, že se podíváte na doporučení Microsoftu pro připojení k databázi z ASP.NET aplikace. Kromě šifrování připojovacích řetězců můžete pomoct posílit zabezpečení systému tím, že zajistíte, že se k databázi připojujete zabezpečeným způsobem.
Krok 1: Prozkoumání možností chráněné konfigurace ASP.NET 2.0
ASP.NET 2.0 obsahuje chráněný konfigurační systém pro šifrování a dešifrování konfiguračních informací. To zahrnuje metody v rozhraní .NET Framework, které lze použít k programovému šifrování nebo dešifrování konfiguračních informací. Chráněný konfigurační systém používá model zprostředkovatele, který vývojářům umožňuje zvolit, jaká kryptografická implementace se použije.
Rozhraní .NET Framework se dodává se dvěma zprostředkovateli chráněných konfigurací:
RSAProtectedConfigurationProvider
– používá asymetrický algoritmus RSA pro šifrování a dešifrování.DPAPIProtectedConfigurationProvider
– k šifrování a dešifrování používá rozhraní API ochrany dat Windows (DPAPI ).
Vzhledem k tomu, že chráněný konfigurační systém implementuje vzor návrhu zprostředkovatele, je možné vytvořit vlastního chráněného zprostředkovatele konfigurace a připojit ho k aplikaci. Další informace o tomto procesu najdete v tématu Implementace zprostředkovatele chráněné konfigurace .
Zprostředkovatelé RSA a DPAPI používají klíče pro své rutiny šifrování a dešifrování a tyto klíče mohou být uloženy na úrovni počítače nebo uživatele. Klíče na úrovni počítače jsou ideální pro scénáře, kdy webová aplikace běží na vlastním vyhrazeném serveru nebo pokud je na serveru více aplikací, které potřebují sdílet šifrované informace. Klíče na úrovni uživatele jsou bezpečnější možností ve sdílených hostitelských prostředích, kde by ostatní aplikace na stejném serveru neměly mít možnost dešifrovat oddíly konfigurace chráněné vaší aplikací.
V tomto kurzu budeme v našich příkladech používat zprostředkovatele DPAPI a klíče na úrovni počítače. Konkrétně se podíváme na šifrování oddílu <connectionStrings>
v Web.config
, i když k šifrování většiny oddílů Web.config
se dá použít chráněný konfigurační systém. Informace o používání klíčů na úrovni uživatele nebo použití poskytovatele RSA najdete v části Další materiály na konci tohoto kurzu.
Poznámka
Zprostředkovatelé RSAProtectedConfigurationProvider
a DPAPIProtectedConfigurationProvider
se registrují v machine.config
souboru s názvy RsaProtectedConfigurationProvider
zprostředkovatelů a DataProtectionConfigurationProvider
. Při šifrování nebo dešifrování konfiguračních informací budeme muset místo skutečného názvu typu ( a ) zadat příslušný název zprostředkovatele (RsaProtectedConfigurationProvider
RSAProtectedConfigurationProvider
nebo DataProtectionConfigurationProvider
DPAPIProtectedConfigurationProvider
). Soubor najdete machine.config
ve $WINDOWS$\Microsoft.NET\Framework\version\CONFIG
složce .
Krok 2: Šifrování a dešifrování konfiguračních oddílů prostřednictvím kódu programu
Pomocí několika řádků kódu můžeme zašifrovat nebo dešifrovat konkrétní konfigurační oddíl pomocí zadaného zprostředkovatele. Kód, jak uvidíme za chvíli, jednoduše potřebuje programově odkazovat na příslušný oddíl konfigurace, volat metodu ProtectSection
nebo UnprotectSection
a pak voláním Save
metody zachovat změny. Rozhraní .NET Framework navíc obsahuje užitečný nástroj příkazového řádku, který může šifrovat a dešifrovat informace o konfiguraci. Tento nástroj příkazového řádku prozkoumáme v kroku 3.
Pro ilustraci ochrany informací o konfiguraci prostřednictvím kódu programu vytvoříme ASP.NET stránku, která obsahuje tlačítka pro šifrování a dešifrování oddílu <connectionStrings>
v Web.config
souboru .
Začněte otevřením EncryptingConfigSections.aspx
stránky ve AdvancedDAL
složce . Přetáhněte ovládací prvek TextBox z panelu nástrojů na Designer a nastavte jeho ID
vlastnost na WebConfigContents
, jeho TextMode
vlastnost na MultiLine
a Width
vlastnosti a Rows
na 95 % a 15. Tento ovládací prvek TextBox zobrazí obsah, Web.config
což nám umožní rychle zjistit, jestli je obsah šifrovaný nebo ne. Samozřejmě, ve skutečné aplikaci byste nikdy nechtěli zobrazovat obsah .Web.config
Pod TextBox přidejte dva ovládací prvky Tlačítko s názvy EncryptConnStrings
a DecryptConnStrings
. Nastavte vlastnosti Text na Šifrovat připojovací řetězce a Dešifrovat připojovací řetězce .
V tomto okamžiku by vaše obrazovka měla vypadat podobně jako na obrázku 2.
Obrázek 2: Přidání webových ovládacích prvků TextBox a Two Button na stránku (kliknutím zobrazíte obrázek v plné velikosti)
Dále musíme napsat kód, který při prvním načtení stránky načte a zobrazí obsah Web.config
objektu WebConfigContents
v textovém poli. Do třídy kódu na pozadí stránky přidejte následující kód. Tento kód přidá metodu s názvem DisplayWebConfig
a zavolá ji z obslužné Page_Load
rutiny události, když Page.IsPostBack
je false
:
protected void Page_Load(object sender, EventArgs e)
{
// On the first page visit, call DisplayWebConfig method
if (!Page.IsPostBack)
DisplayWebConfig();
}
private void DisplayWebConfig()
{
// Reads in the contents of Web.config and displays them in the TextBox
StreamReader webConfigStream =
File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"));
string configContents = webConfigStream.ReadToEnd();
webConfigStream.Close();
WebConfigContents.Text = configContents;
}
Metoda DisplayWebConfig
používá File
třídu k otevření souboru s Web.config
aplikace, StreamReader
třídu ke čtení obsahu do řetězce a Path
třídu k vygenerování fyzické cesty k Web.config
souboru. Všechny tyto tři třídy se nacházejí v System.IO
oboru názvů . V důsledku toho budete muset přidat using
System.IO
příkaz na začátek třídy kódu na pozadí nebo alternativně před tyto názvy tříd přidat předponu System.IO.
.
Dále musíme přidat obslužné rutiny událostí pro dvě události ovládacích prvků Click
Button a přidat potřebný kód pro šifrování a dešifrování oddílu <connectionStrings>
pomocí klíče na úrovni počítače s zprostředkovatelem DPAPI. V Designer poklikejte na všechna tlačítka a přidejte obslužnou rutinu Click
události do třídy code-behind a pak přidejte následující kód:
protected void EncryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings = config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only encrypt the section if it is not already protected
if (!connectionStrings.SectionInformation.IsProtected)
{
// Encrypt the <connectionStrings> section using the
// DataProtectionConfigurationProvider provider
connectionStrings.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider");
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
protected void DecryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings =
config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only decrypt the section if it is protected
if (connectionStrings.SectionInformation.IsProtected)
{
// Decrypt the <connectionStrings> section
connectionStrings.SectionInformation.UnprotectSection();
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
Kód použitý v těchto dvou obslužných rutinách událostí je téměř identický. Oba začínají získáním informací o aktuálním souboru s Web.config
aplikace prostřednictvím WebConfigurationManager
metody třídy sOpenWebConfiguration
. Tato metoda vrátí konfigurační soubor webu pro zadanou virtuální cestu. Dále se k oddílu Web.config
file s <connectionStrings>
přistupuje prostřednictvím Configuration
metody třídy sGetSection(sectionName)
, která vrací ConfigurationSection
objekt.
Objekt ConfigurationSection
obsahuje SectionInformation
vlastnost , která poskytuje další informace a funkce týkající se oddílu konfigurace. Jak ukazuje výše uvedený kód, můžeme zjistit, jestli je konfigurační oddíl zašifrovaný, kontrolou SectionInformation
vlastnosti s IsProtected
. Kromě toho může být oddíl šifrovaný nebo dešifrovaný prostřednictvím SectionInformation
vlastností ProtectSection(provider)
a UnprotectSection
metod.
Metoda ProtectSection(provider)
přijímá jako vstup řetězec, který určuje název chráněného zprostředkovatele konfigurace, který se má použít při šifrování. V obslužné rutině EncryptConnString
události Button s předáme do ProtectSection(provider)
metody DataProtectionConfigurationProvider, aby se použil zprostředkovatel DPAPI. Metoda UnprotectSection
může určit zprostředkovatele, který byl použit k šifrování konfiguračního oddílu, a proto nevyžaduje žádné vstupní parametry.
Po volání ProtectSection(provider)
metody nebo UnprotectSection
je nutné zavolat metodu objektu Configuration
sSave
, aby se změny zachovaly. Jakmile jsou konfigurační informace zašifrovány nebo dešifrovány a změny uloženy, voláme k DisplayWebConfig
načtení aktualizovaného Web.config
obsahu do ovládacího prvku TextBox.
Jakmile zadáte výše uvedený kód, otestujte ho EncryptingConfigSections.aspx
tak, že navštívíte stránku v prohlížeči. Nejprve byste měli vidět stránku se seznamem obsahu Web.config
s oddílem <connectionStrings>
zobrazeným ve formátu prostého textu (viz Obrázek 3).
Obrázek 3: Přidání webových ovládacích prvků TextBox a Dvoutlačítko na stránku (kliknutím zobrazíte obrázek v plné velikosti)
Teď klikněte na tlačítko Šifrovat připojovací řetězce. Pokud je povoleno ověření požadavku, kód vystavený zpět z Textového WebConfigContents
HttpRequestValidationException
pole vytvoří , který zobrazí zprávu, že klient zjistil potenciálně nebezpečnou Request.Form
hodnotu. Ověření požadavku, které je ve výchozím nastavení povolené v ASP.NET 2.0, zakazuje zpětné odeslání, které obsahuje nezakódovaný kód HTML, a je navržené tak, aby pomáhalo předcházet útokům prostřednictvím injektáže skriptu. Tuto kontrolu je možné zakázat na úrovni stránky nebo aplikace. Pokud ho ValidateRequest
chcete pro tuto stránku vypnout, nastavte v direktivě @Page
na false
hodnotu . Direktiva @Page
se nachází v horní části deklarativního kódu stránky.
<%@ Page ValidateRequest="False" ... %>
Další informace o ověření požadavku, jeho účelu, jeho zakázání na úrovni stránky a aplikace a také o tom, jak kódovat kód HTML, najdete v tématu Ověření požadavku – prevence útoků skriptů.
Po zakázání ověření požadavku na stránku zkuste znovu kliknout na tlačítko Šifrovat připojovací řetězce. Při zpětném odeslání bude konfigurační soubor přístupný a jeho <connectionStrings>
oddíl bude zašifrován pomocí zprostředkovatele DPAPI. Textové pole se pak aktualizuje tak, aby zobrazoval nový Web.config
obsah. Jak ukazuje obrázek 4, <connectionStrings>
informace jsou teď zašifrované.
Obrázek 4: Kliknutím na tlačítko Šifrovat připojovací řetězce zašifrujete <connectionString>
oddíl (kliknutím zobrazíte obrázek v plné velikosti)
Šifrovaný <connectionStrings>
oddíl vygenerovaný na mém počítači následuje, i když byl kvůli stručnosti odebrán část obsahu elementu <CipherData>
:
<connectionStrings
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Poznámka
Element <connectionStrings>
určuje zprostředkovatele použitého k šifrování (DataProtectionConfigurationProvider
). Tyto informace používá UnprotectSection
metoda při kliknutí na tlačítko Dešifrovat připojovací řetězce.
Při přístupu k připojovací řetězec informace z Web.config
– buď pomocí kódu, který napíšeme, z ovládacího prvku SqlDataSource nebo automaticky vygenerovaného kódu z objektů TableAdapter v našich typed datasets – se automaticky dešifrují. Stručně řečeno, k dešifrování šifrovaného <connectionString>
oddílu nemusíme přidávat žádný kód ani logiku navíc. Pokud si to chcete předvést, navštivte v tuto chvíli jeden z dřívějších kurzů, například kurz Jednoduché zobrazení v části Základní generování sestav (~/BasicReporting/SimpleDisplay.aspx
). Jak ukazuje obrázek 5, kurz funguje přesně tak, jak bychom očekávali, což značí, že šifrované připojovací řetězec informace jsou automaticky dešifrovány ASP.NET stránkou.
Obrázek 5: Vrstva přístupu k datům automaticky dešifruje informace o připojovacím řetězci (kliknutím zobrazíte obrázek v plné velikosti)
Pokud chcete oddíl vrátit <connectionStrings>
zpět do formátu prostého textu, klikněte na tlačítko Dešifrovat připojovací řetězce. Na postbacku byste měli vidět připojovací řetězce ve Web.config
formátu prostého textu. V tuto chvíli by vaše obrazovka měla vypadat stejně jako při první návštěvě této stránky (viz obrázek 3).
Krok 3: Šifrování oddílů konfigurace pomocí aspnet_regiis.exe
Rozhraní .NET Framework obsahuje řadu nástrojů příkazového řádku ve $WINDOWS$\Microsoft.NET\Framework\version\
složce. V kurzu Používání závislostí mezipaměti SQL jsme se například podívali na použití aspnet_regsql.exe
nástroje příkazového řádku k přidání infrastruktury potřebné pro závislosti mezipaměti SQL. Dalším užitečným nástrojem příkazového řádku v této složce je ASP.NET nástroj pro registraci služby IIS (aspnet_regiis.exe
). Jak název napovídá, nástroj ASP.NET pro registraci služby IIS se primárně používá k registraci aplikace ASP.NET 2.0 na webovém serveru microsoftu na profesionální úrovni iis. Kromě funkcí souvisejících se službou IIS lze nástroj ASP.NET registrace služby IIS použít také k šifrování nebo dešifrování zadaných konfiguračních oddílů v Web.config
nástroji .
Následující příkaz ukazuje obecnou syntaxi použitou k šifrování konfiguračního oddílu pomocí nástroje příkazového aspnet_regiis.exe
řádku:
aspnet_regiis.exe -pef section physical_directory -prov provider
section je oddíl konfigurace pro šifrování (například connectionStrings), physical_directory je úplná fyzická cesta ke kořenovému adresáři webové aplikace a zprostředkovatel je název chráněného zprostředkovatele konfigurace, který se má použít (například DataProtectionConfigurationProvider ). Pokud je webová aplikace zaregistrovaná ve službě IIS, můžete také zadat virtuální cestu místo fyzické cesty pomocí následující syntaxe:
aspnet_regiis.exe -pe section -app virtual_directory -prov provider
Následující aspnet_regiis.exe
příklad zašifruje <connectionStrings>
oddíl pomocí zprostředkovatele DPAPI s klíčem na úrovni počítače:
aspnet_regiis.exe -pef
"connectionStrings" "C:\Websites\ASPNET_Data_Tutorial_73_CS"
-prov "DataProtectionConfigurationProvider"
Podobně lze nástroj příkazového aspnet_regiis.exe
řádku použít k dešifrování konfiguračních oddílů. Místo použití -pef
přepínače použijte -pdf
(nebo místo použijte -pe
).-pd
Všimněte si také, že název zprostředkovatele není při dešifrování nutný.
aspnet_regiis.exe -pdf section physical_directory
-- or --
aspnet_regiis.exe -pd section -app virtual_directory
Poznámka
Vzhledem k tomu, že používáme zprostředkovatele DPAPI, který používá klíče specifické pro počítač, musíte spustit aspnet_regiis.exe
ze stejného počítače, ze kterého se webové stránky obsluhují. Pokud například spustíte tento program příkazového řádku z místního vývojového počítače a pak nahrajete šifrovaný soubor Web.config na produkční server, produkční server nebude moct dešifrovat informace o připojovací řetězec, protože byly zašifrované pomocí klíčů specifických pro váš vývojový počítač. Poskytovatel RSA toto omezení nemá, protože je možné exportovat klíče RSA do jiného počítače.
Principy možností ověřování databáze
Před tím, INSERT
UPDATE
DELETE
než může nějaká aplikace vydat SELECT
dotazy na databázi Microsoft SQL Server, musí databáze nejprve identifikovat žadatele. Tento proces se označuje jako ověřování a SQL Server poskytuje dvě metody ověřování:
- Ověřování systému Windows – proces, ve kterém je aplikace spuštěná, se používá ke komunikaci s databází. Při spuštění aplikace ASP.NET prostřednictvím sady Visual Studio 2005 s ASP.NET Development Server ASP.NET aplikace předpokládá identitu aktuálně přihlášeného uživatele. U ASP.NET aplikací na serveru Iis (Microsoft Internet Information Server) ASP.NET aplikace obvykle přebírají identitu
domainName``\MachineName
nebodomainName``\NETWORK SERVICE
, i když je možné ji přizpůsobit. - Ověřování SQL – ID uživatele a hodnoty hesla se zadají jako přihlašovací údaje pro ověřování. Při ověřování SQL jsou ID uživatele a heslo k dispozici v připojovací řetězec.
Ověřování Systému Windows je upřednostňováno před ověřováním SQL, protože je bezpečnější. Při ověřování systému Windows je připojovací řetězec bez uživatelského jména a hesla, a pokud se webový server a databázový server nacházejí na dvou různých počítačích, přihlašovací údaje se neposílají přes síť ve formátu prostého textu. Při ověřování SQL jsou však ověřovací přihlašovací údaje pevně zakódovány v připojovací řetězec a přenášejí se z webového serveru na databázový server ve formátu prostého textu.
V těchto kurzech se používá ověřování Windows. Pomocí kontroly připojovací řetězec zjistíte, jaký režim ověřování se používá. Naše kurzy připojovací řetězecWeb.config
:
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True
Integrované zabezpečení =True a chybějící uživatelské jméno a heslo značí, že se používá ověřování Systému Windows. V některých připojovacích řetězcích se místo integrovaného zabezpečení=true používá termín Důvěryhodné připojení=Ano nebo Integrované zabezpečení=SSPI, ale všechny tři označují použití ověřování systému Windows.
Následující příklad ukazuje připojovací řetězec, která používá ověřování SQL. $CREDENTIAL_PLACEHOLDER$
je zástupný symbol pro pár klíč-hodnota hesla. Všimněte si, že přihlašovací údaje jsou vložené v připojovací řetězec:
Server=serverName; Database=Northwind; uid=userID; $CREDENTIAL_PLACEHOLDER$
Představte si, že útočník může zobrazit soubor vaší Web.config
aplikace. Pokud použijete ověřování SQL pro připojení k databázi, která je přístupná přes internet, může útočník použít tuto připojovací řetězec pro připojení k databázi prostřednictvím aplikace SQL Management Studio nebo ze ASP.NET stránek na vlastním webu. Pokud chcete tuto hrozbu zmírnit, zašifrujte připojovací řetězec informace pomocí Web.config
chráněného konfiguračního systému.
Poznámka
Další informace o různých typech ověřování dostupných v SQL Server najdete v tématu Vytváření zabezpečených ASP.NET aplikací: Ověřování, autorizace a zabezpečená komunikace. Další připojovací řetězec příklady, které ilustrují rozdíly mezi syntaxí ověřování systému Windows a SQL, najdete v ConnectionStrings.com.
Souhrn
Ve výchozím nastavení nelze k souborům s příponou .config
v aplikaci ASP.NET přistupovat přes prohlížeč. Tyto typy souborů se nevrací, protože můžou obsahovat citlivé informace, jako jsou připojovací řetězce databáze, uživatelská jména a hesla atd. Chráněný konfigurační systém v .NET 2.0 pomáhá dále chránit citlivé informace tím, že umožňuje šifrování zadaných oddílů konfigurace. Existují dva předdefinované zprostředkovatelé chráněné konfigurace: jeden, který používá algoritmus RSA, a druhý, který používá rozhraní API ochrany dat windows (DPAPI).
V tomto kurzu jsme se podívali na šifrování a dešifrování nastavení konfigurace pomocí zprostředkovatele DPAPI. Toho lze dosáhnout jak programově, jak jsme viděli v kroku 2, tak i pomocí nástroje příkazového aspnet_regiis.exe
řádku, který byl popsaný v kroku 3. Další informace o použití klíčů na úrovni uživatele nebo použití poskytovatele RSA najdete v části Další informace.
Šťastné programování!
Další čtení
Další informace o tématech probíraných v tomto kurzu najdete v následujících zdrojích informací:
- Sestavení aplikace Zabezpečené ASP.NET: Ověřování, autorizace a zabezpečená komunikace
- Šifrování konfiguračních informací v aplikacích ASP.NET 2.0
- Šifrování
Web.config
hodnot v ASP.NET 2.0 - Postupy: Šifrování oddílů konfigurace v ASP.NET 2.0 pomocí rozhraní DPAPI
- Postupy: Šifrování oddílů konfigurace v ASP.NET 2.0 pomocí RSA
- Rozhraní API pro konfiguraci v .NET 2.0
- Ochrana dat ve Windows
O autorovi
Scott Mitchell, autor sedmi knih o ASP/ASP.NET a zakladatel 4GuysFromRolla.com, pracuje s webovými technologiemi Microsoftu od roku 1998. Scott pracuje jako nezávislý konzultant, školitel a spisovatel. Jeho nejnovější kniha je Sams Teach Yourself ASP.NET 2.0 in 24 Hours. Můžete ho najít na mitchell@4GuysFromRolla.comadrese . nebo prostřednictvím jeho blogu, který najdete na http://ScottOnWriting.NETadrese .
Zvláštní poděkování
Tato série kurzů byla zkontrolována mnoha užitečnými recenzenty. Hlavními recenzenty tohoto kurzu byli Teresa Murphy a Randy Schmidt. Chcete si projít moje nadcházející články na WEBU MSDN? Pokud ano, dejte mi čáru na mitchell@4GuysFromRolla.comadresu .
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro