Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ochrana přístupu ke zdroji dat je jedním z nejdůležitějších cílů při zabezpečení aplikace. Připojovací řetězec představuje potenciální ohrožení zabezpečení, pokud není zabezpečené. Ukládání informací o připojení ve formátu prostého textu nebo jejich uchování v paměti riskuje ohrožení celého systému. Připojovací řetězce vložené do zdrojového kódu lze číst pomocí Ildasm.exe (IL Disassembler) k zobrazení společného zprostředkujícího jazyka (CIL) v kompilovaném sestavení.
K ohrožením zabezpečení zahrnujícím připojovací řetězce může dojít na základě typu použitého ověřování, způsobu zachování připojovacích řetězců v paměti a na disku a technik používaných k jejich sestavení za běhu.
Důležité
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, Spravované identity pro prostředky Azure jsou doporučenou metodou ověřování.
Použít ověřování systému Windows
Pokud chcete omezit přístup ke zdroji dat, musíte zabezpečit informace o připojení, jako je ID uživatele, heslo a název zdroje dat. Pokud se chcete vyhnout zveřejnění informací o uživatelích, doporučujeme pro místní zdroje dat použít ověřování systému Windows (někdy označované jako integrované zabezpečení). (Při připojování k Azure SQL byste ale měli použít Spravované identity pro prostředky Azure.) Ověřování systému Windows se zadává v připojovací řetězec pomocí Integrated Security klíčových slov a Trusted_Connection eliminuje nutnost používat ID uživatele a heslo. Při použití ověřování systému Windows se uživatelé ověřují systémem Windows a přístup k serverovým a databázovým prostředkům se určuje udělením oprávnění uživatelům a skupinám Windows.
V situacích, kdy není možné použít ověřování systému Windows, je nutné dávat pozor, protože přihlašovací údaje uživatele se zobrazují v připojovacím řetězci. V aplikaci ASP.NET můžete účet systému Windows nakonfigurovat jako pevnou identitu, která se používá pro připojení k databázím a dalším síťovým prostředkům. V elementu identity v souboru web.config povolíte zosobnění a zadáte uživatelské jméno a heslo.
<identity impersonate="true"
userName="MyDomain\UserAccount"
password="*****" />
Pevný účet identity by měl být účet s nízkými oprávněními, kterému byla udělena pouze potřebná oprávnění v databázi. Kromě toho byste měli konfigurační soubor zašifrovat tak, aby uživatelské jméno a heslo nebyly zpřístupněny ve formátu prostého textu.
Důležité
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.
Nepoužívejte soubory UDL (Universal Data Link).
Vyhněte se ukládání připojovacích řetězců do souboru UDL (Universal Data Link). Seznamy definované uživatelem jsou uložené ve formátu prostého textu a nelze je zašifrovat. Soubor UDL je externím souborem založeným na souborech pro vaši aplikaci a nelze ho zabezpečit ani zašifrovat pomocí rozhraní .NET Framework.
Vyhněte se injekčním útokům pomocí konstruktorů připojovacích řetězců
Útok injekce do řetězce připojení může nastat, když se k sestavení řetězce připojení na základě vstupu uživatele používá dynamické zřetězení řetězců. Pokud se uživatelský vstup neověří a škodlivý text nebo znaky neuniknou, útočník může potenciálně získat přístup k citlivým datům nebo jiným prostředkům na serveru. Chcete-li tento problém vyřešit, ADO.NET 2.0 zavedlo nové třídy pro tvorbu připojovacích řetězců pro ověření syntaxe připojovacích řetězců a zajistit, že nejsou přidány žádné další parametry. Další informace naleznete v tématu Tvůrci řetězců připojení.
Použití Persist Security Info=False
Výchozí hodnota Persist Security Info je false. Doporučujeme tuto výchozí hodnotu použít ve všech připojovacích řetězcích. Nastavení Persist Security Info nebo true či yes umožňuje získání citlivých informací zabezpečení, včetně uživatelského ID a hesla, z připojení po jeho otevření. Pokud je Persist Security Info nastaven na hodnotu false nebo no, bezpečnostní informace se po použití k otevření připojení vymažou, aby žádný nedůvěryhodný zdroj neměl přístup k informacím citlivým na bezpečnost.
Šifrování konfiguračních souborů
Můžete také ukládat připojovací řetězec do konfiguračních souborů, což eliminuje nutnost jejich vložení do kódu vaší aplikace. Konfigurační soubory jsou standardní soubory XML, pro které rozhraní .NET Framework definovalo společnou sadu prvků. Připojovací řetězce v konfiguračních souborech se obvykle ukládají uvnitř elementu <connectionStrings> v app.config pro aplikaci pro Windows nebo web.configsouboru pro ASP.NET aplikaci. Další informace o základech ukládání, načítání a šifrování připojovací řetězec z konfiguračních souborů najdete v tématu Připojovací řetězce a konfigurační soubory.