Zabezpečený přístup k datům
Pokud chcete napsat zabezpečený ADO.NET kód, musíte porozumět mechanismům zabezpečení dostupným v podkladovém úložišti dat nebo v databázi. Musíte také zvážit vliv na zabezpečení jiných funkcí nebo komponent, které vaše aplikace může obsahovat.
Ověřování, autorizace a oprávnění
Při připojování k Microsoft SQL Serveru můžete použít ověřování systému Windows, označované také jako integrované zabezpečení, které používá identitu aktuálního aktivního uživatele systému Windows, místo předání ID uživatele a hesla. Použití ověřování systému Windows se doporučuje pro místní databáze, protože přihlašovací údaje uživatele se v připojovací řetězec nezpřístupní. Pokud se nemůžete připojit k SQL Serveru pomocí ověřování systému Windows, zvažte vytvoření připojovací řetězec za běhu pomocí nástroje SqlConnectionStringBuilder.
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 se doporučují metodou ověřování.
Přihlašovací údaje používané k ověřování je potřeba zpracovat jinak podle typu aplikace. Například v aplikaci model Windows Forms může být uživatel vyzván k zadání ověřovacích informací nebo je možné použít přihlašovací údaje windows uživatele. Webová aplikace ale často přistupuje k datům pomocí přihlašovacích údajů zadaných samotnou aplikací, nikoli uživatelem.
Jakmile budou uživatelé ověřeni, rozsah jejich akcí závisí na oprávněních, která jim byla udělena. Vždy dodržujte princip nejnižší úrovně oprávnění a udělte pouze oprávnění, která jsou naprosto nezbytná.
Další informace najdete v následujících materiálech.
Resource | Popis |
---|---|
Ochrana informací o připojení | Popisuje osvědčené postupy a techniky zabezpečení pro ochranu informací o připojení, jako je použití chráněné konfigurace k šifrování připojovací řetězec. |
Tvůrci připojovacích řetězců | Popisuje, jak sestavit připojovací řetězec ze vstupu uživatele za běhu. |
Zabezpečení databázového stroje SQL Serveru a Azure SQL Database | Obsahuje odkazy, které vám pomůžou najít informace o zabezpečení a ochraně v databázovém stroji SQL Serveru a ve službě Azure SQL Database. |
Parametrizované příkazy a injektáž SQL
Použití parametrizovaných příkazů pomáhá chránit před útoky prostřednictvím injektáže SQL, ve kterých útočník "vloží" příkaz do příkazu SQL, který ohrožuje zabezpečení na serveru. Parametrizované příkazy chrání před útokem prostřednictvím injektáže SQL tím, že zajišťují, aby hodnoty přijaté z externího zdroje byly předány pouze jako hodnoty, a ne jako součást příkazu Transact-SQL. V důsledku toho se příkazy Jazyka Transact-SQL vložené do hodnoty nespustí ve zdroji dat. Spíše se vyhodnocují výhradně jako hodnota parametru. Kromě výhod zabezpečení poskytují parametrizované příkazy pohodlnou metodu pro uspořádání hodnot předaných pomocí příkazu Transact-SQL nebo uložené procedury.
Další informace o použití parametrizovaných příkazů najdete v následujících zdrojích informací.
Resource | Popis |
---|---|
Parametry adaptéru dat | Popisuje, jak používat parametry s parametrem DataAdapter . |
Úpravy dat pomocí uložených procedur | Popisuje, jak zadat parametry a získat návratovou hodnotu. |
Uložené procedury (databázový stroj) | Popisuje výhody používání uložených procedur a různých typů uložených procedur. |
Testování útoků
Útočníci často používají informace z výjimky, jako je název serveru, databáze nebo tabulky, k připojení útoku na váš systém. Vzhledem k tomu, že výjimky můžou obsahovat konkrétní informace o vaší aplikaci nebo zdroji dat, můžete aplikaci a zdroj dat lépe chránit jenom zveřejněním základních informací klientovi.
Další informace najdete v následujících materiálech.
Resource | Popis |
---|---|
Zpracování a vyvolání výjimek v .NET | Popisuje základní formy zpracování výjimek try/catch/finally. |
Doporučené postupy pro výjimky | Popisuje osvědčené postupy pro zpracování výjimek. |
Ochrana zdrojů dat v Microsoft Accessu a Excelu
Microsoft Access a Microsoft Excel můžou fungovat jako úložiště dat pro aplikaci ADO.NET, pokud jsou požadavky na zabezpečení minimální nebo neexistující. Jejich funkce zabezpečení jsou účinné pro odstrašování, ale nemělo by se spoléhat na to, aby se více než odrazilo v přístupu neinformovanými uživateli. Fyzické datové soubory pro Access a Excel existují v systému souborů a musí být přístupné všem uživatelům. Díky tomu jsou zranitelné vůči útokům, které by mohly způsobit krádež nebo ztrátu dat, protože soubory je možné snadno zkopírovat nebo změnit. Pokud je vyžadováno robustní zabezpečení, použijte SQL Server nebo jinou serverovou databázi, kde fyzické datové soubory nejsou čitelné ze systému souborů.
Podnikové služby
Com+ obsahuje vlastní model zabezpečení, který spoléhá na účty Windows a zosobnění procesů a vláken. Obor System.EnterpriseServices názvů poskytuje obálky, které aplikacím .NET umožňují integrovat spravovaný kód se službami zabezpečení MODELU COM+ prostřednictvím ServicedComponent třídy.
Spolupráce s nespravovaným kódem
Rozhraní .NET Framework poskytuje interakci s nespravovaným kódem, včetně komponent modelu COM, služeb COM+, knihoven externích typů a mnoha služeb operačního systému. Práce s nespravovaným kódem zahrnuje přechod mimo hraniční síť zabezpečení spravovaného kódu. Kód i jakýkoli kód, který ho volá, musí mít nespravované oprávnění ke kódu (SecurityPermission se zadaným příznakem UnmanagedCode ). Nespravovaný kód může do vaší aplikace zavést neúmyslná ohrožení zabezpečení. Proto byste se měli vyhnout spolupráci s nespravovaným kódem, pokud to není nezbytně nutné.
Další informace najdete v tématu Spolupráce s nespravovaným kódem.