Ochrana informací o připojení

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řipojení ionové řetězce vložené do zdrojového kódu je možné číst pomocí Ildasm.exe (IL Disassembler) k zobrazení společného zprostředkujícího jazyka (CIL) v kompilovaném sestavení.

Ohrožení zabezpečení zahrnující připojovací řetězec mohou nastat na základě typu použitého ověřování, způsobu, jakým jsou připojovací řetězec trvalé v paměti a na disku, a techniky používané k jejich sestavení za běhu.

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. Aby se zabránilo zveřejnění informací o uživateli, doporučujeme používat ověřování systému Windows (někdy označované jako integrované zabezpečení), kdykoli je to možné. Ověřování systému Windows se zadává v připojovací řetězec pomocí Integrated Security klíčových slov nebo Trusted_Connection pomocí klíčových slov a 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é použít dodatečnou péči, protože přihlašovací údaje uživatele jsou vystaveny v připojovací řetězec. 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.

Vyhněte se ukládání připojovací řetězec pro OleDbConnection soubor 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 útokům prostřednictvím injektáže pomocí tvůrce řetězců Připojení ionu

Útok připojovací řetězec injektáže může nastat, když se k sestavení připojovací řetězec na základě uživatelského vstupu používá zřetězení dynamického řetězce. 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 zavedly nové třídy tvůrce připojovací řetězec pro ověření připojovací řetězec syntaxe a ujistěte se, že nejsou zavedeny další parametry. Další informace najdete v tématu Připojení ion String Builders.

Použití trvalých bezpečnostních údajů=False

Výchozí hodnota Persist Security Info je false. Doporučujeme tuto výchozí hodnotu použít ve všech připojovací řetězec. Nastavení Persist Security Info nebo trueyes povolení zabezpečení citlivých informací, včetně ID uživatele a hesla, se po otevření získá z připojení. Pokud Persist Security Info je nastavená hodnota false nebo no, bezpečnostní informace se po použití k otevření připojení zahodí, aby nedůvěryhodný zdroj neměl přístup k citlivým informacím zabezpečení.

Š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 definovala společnou sadu elementů. Připojení řetězce v konfiguračních souborech jsou obvykle uloženy uvnitř <element connectionStrings> v souboru app.config pro aplikaci pro Windows nebo soubor web.config pro aplikaci ASP.NET. 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řipojení ionové řetězce a konfigurační soubory.

Viz také