Ochrana připojovacích řetězců a dalších konfiguračních údajů (VB)
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 Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
'On the first page visit, call DisplayWebConfig method
If Not Page.IsPostBack Then
DisplayWebConfig()
End If
End Sub
Private Sub DisplayWebConfig()
'Reads in the contents of Web.config and displays them in the TextBox
Dim webConfigStream As StreamReader = _
File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"))
Dim configContents As String = webConfigStream.ReadToEnd()
webConfigStream.Close()
WebConfigContents.Text = configContents
End Sub
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 Imports``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 Sub EncryptConnStrings_Click(sender As Object, e As EventArgs) _
Handles EncryptConnStrings.Click
'Get configuration information about Web.config
Dim config As Configuration = _
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
' Let's work with the <connectionStrings> section
Dim connectionStrings As ConfigurationSection = _
config.GetSection("connectionStrings")
If connectionStrings IsNot Nothing Then
' Only encrypt the section if it is not already protected
If Not connectionStrings.SectionInformation.IsProtected Then
' Encrypt the <connectionStrings> section using the
' DataProtectionConfigurationProvider provider
connectionStrings.SectionInformation.ProtectSection( _
"DataProtectionConfigurationProvider")
config.Save()
' Refresh the Web.config display
DisplayWebConfig()
End If
End If
End Sub
Protected Sub DecryptConnStrings_Click(sender As Object, e As EventArgs) _
Handles DecryptConnStrings.Click
' Get configuration information about Web.config
Dim config As Configuration = _
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
' Let's work with the <connectionStrings> section
Dim connectionStrings As ConfigurationSection = _
config.GetSection("connectionStrings")
If connectionStrings IsNot Nothing Then
' Only decrypt the section if it is protected
If connectionStrings.SectionInformation.IsProtected Then
' Decrypt the <connectionStrings> section
connectionStrings.SectionInformation.UnprotectSection()
config.Save()
' Refresh the Web.config display
DisplayWebConfig()
End If
End If
End Sub
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. TextBox se pak aktualizuje tak, aby zobrazoval nový Web.config
obsah. Jak ukazuje obrázek 4, <connectionStrings>
informace jsou teď šifrované.
Obrázek 4: Kliknutím na tlačítko Zašifrovat připojovací řetězce zašifrujete <connectionString>
oddíl (kliknutím zobrazíte obrázek v plné velikosti)
Následuje šifrovaný <connectionStrings>
oddíl vygenerovaný v mém počítači, 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 informacím z Web.config
– buď kódem, který napíšeme, z ovládacího prvku SqlDataSource nebo automaticky vygenerovaným kódem z objektů TableAdapter v 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ý další kód ani logiku. Pokud si to chcete předvést, navštivte v tuto chvíli některý z dřívějších kurzů, jako je například kurz jednoduchého zobrazení v části Základní vytváření sestav (~/BasicReporting/SimpleDisplay.aspx
). Jak ukazuje obrázek 5, kurz funguje přesně tak, jak bychom očekávali, což znamená, ž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 připojovacího řetězce (kliknutím zobrazíte obrázek v plné velikosti)
Pokud chcete oddíl vrátit <connectionStrings>
zpátky 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 v Web.config
souboru ve formátu prostého textu. V tomto okamžiku by vaše obrazovka měla vypadat 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 ve složce celou řadu nástrojů příkazového $WINDOWS$\Microsoft.NET\Framework\version\
řádku. V kurzu Používání závislostí mezipaměti SQL jsme se například podívali na použití nástroje příkazového aspnet_regsql.exe
řádku k přidání infrastruktury nezbytné 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 už 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 profesionálním webovém serveru společnosti Microsoft 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 nástroji Web.config
.
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
je konfigurační oddíl pro šifrování (například connectionStrings), physical_directory je úplná fyzická cesta ke kořenovému adresáři webové aplikace a provider 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 místo fyzické cesty zadat virtuální cestu 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_VB"
-prov "DataProtectionConfigurationProvider"
Podobně aspnet_regiis.exe
lze k dešifrování konfiguračních oddílů použít nástroj příkazového řádku. Místo přepínače -pef
použijte -pdf
(nebo místo -pe
použijte ).-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 daný 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 potom nahrajete šifrovaný soubor Web.config na produkční server, produkční server nebude moct připojovací řetězec informace dešifrovat, protože byly zašifrované pomocí klíčů specifických pro váš vývojový počítač. Poskytovatel RSA toto omezení nemá, protože klíče RSA je možné exportovat 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řebírá identitu aktuálně přihlášeného uživatele. Pro ASP.NET aplikace na serveru Microsoft Internet Information Server (IIS), ASP.NET aplikace obvykle přebírají identitu
domainName``\MachineName
nebodomainName``\NETWORK SERVICE
, i když tuto identitu lze přizpůsobit. - Ověřování SQL – hodnoty ID uživatele a hesla se zadají jako přihlašovací údaje pro ověřování. Při ověřování SQL se ID uživatele a heslo zadají 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 připojovací řetězec neobsahuje uživatelské jméno a heslo, a pokud se webový 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 přihlašovací údaje pevně zakódované 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í systému Windows. To, jaký režim ověřování se používá, poznáte tak, že zkontrolujete připojovací řetězec. Naše kurzy připojovací řetězecWeb.config
:
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True
Hodnota Integrated Security=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 Integrated Security=True používá termín Důvěryhodné připojení=Ano nebo Integrated Security=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. Poznamenejte si přihlašovací údaje vložené v připojovací řetězec:
Server=serverName; Database=Northwind; uid=userID; pwd=password
Představte si, že útočník může zobrazit soubor vaší Web.config
aplikace. Pokud používáte ověřování SQL pro připojení k databázi, která je přístupná přes internet, útočník může tuto připojovací řetězec použít pro připojení k databázi přes 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 tématu 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 nevrátí, protože můžou obsahovat citlivé informace, jako jsou databázové připojovací řetězce, 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 konfiguračních oddílů. Existují dva předdefinované zprostředkovatelé chráněné konfigurace: jeden, který používá algoritmus RSA, a druhý, který používá rozhraní WINDOWS Data Protection API (DPAPI).
V tomto kurzu jsme se podívali na šifrování a dešifrování nastavení konfigurace pomocí zprostředkovatele DPAPI. To lze provést jak programově, jak jsme viděli v kroku 2, tak prostřednictvím nástroje příkazového aspnet_regiis.exe
řádku, který byl popsán v kroku 3. Další informace o použití klíčů na úrovni uživatele nebo použití poskytovatele RSA najdete v materiálech v části Další materiály.
Všechno nejlepší na 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í
Web.config
hodnot v ASP.NET 2.0 - Postupy: Šifrování konfiguračních oddílů v ASP.NET 2.0 pomocí rozhraní DPAPI
- Postupy: Šifrování oddílů konfigurace v ASP.NET 2.0 pomocí RSA
- Konfigurační rozhraní API 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 zastihnout na mitchell@4GuysFromRolla.comadrese . nebo prostřednictvím jeho blogu, který najdete na adrese http://ScottOnWriting.NET.
Zvláštní poděkování
Tato série kurzů byla zkontrolována mnoha užitečnými recenzenty. Hlavními recenzenty pro tento kurz byli Teresa Murphy a Randy Schmidt. Chtěli byste si projít své nadcházející články na webu MSDN? Pokud ano, dejte mi řádek na mitchell@4GuysFromRolla.com.