Sdílet prostřednictvím


Základy zabezpečení přístupu kódu

Každá aplikace, která se zaměřuje na modul CLR (Common Language Runtime), tedy každá spravovaná aplikace, musí spolupracovat se systém zabezpečení modulu runtime. Když je spravovaná aplikace načtena, její hostitel ji automaticky udělí sadu oprávnění. Tato oprávnění jsou určena pomocí nastavení místního zabezpečení hostitele nebo pomocí izolovaného prostoru, ve kterém je aplikace. V závislosti na těchto oprávněních aplikace buď běží správně nebo generuje výjimku zabezpečení.

Výchozí hostitel pro stolní aplikace umožňuje kódu běžet jako plně důvěryhodný. Proto jestliže se vaše aplikace zaměřuje na stolní počítač, tak má neomezenou sadu oprávnění. Jiní hostitelé nebo izolované prostory poskytují aplikacím omezenou sadu oprávnění. Protože se sada oprávnění může měnit od hostitele k hostiteli, musíte navrhnout vaší aplikace tak, aby používala pouze oprávnění, která umožňuje váš cílový hostitel.

Musíte znát následující koncepty zabezpečení přístupu kódu, abyste mohli psát efektivní aplikace, které se zaměřují na modul CLR (Common Language Runtime):

  • Psaní kódu zajišťujícího bezpečnost typů: Chcete-li kódu umožnit, aby využíval výhody zabezpečení přístupu kódu, je nutné použít kompilátor, který generuje ověřitelný kód zajišťující bezpečnost typů. Další informace naleznete v tématu Writing Verifiably Type-Safe Code.

  • Imperativní nebo deklarativní syntaxe: Interakce se systémem zabezpečení modulu runtime se provádí pomocí imperativního nebo deklarativního volání zabezpečení. Deklarativní volání jsou prováděna pomocí atributů; imperativní volání jsou prováděna pomocí nových instancí tříd v rámci vašeho kódu. Některá volání mohou být provedena pouze imperativně, jiné mohou být provedeny pouze deklarativně a některá volání mohou být provedena libovolným způsobem. Další informace naleznete v tématu Security Syntax.

  • Použití zabezpečených knihoven tříd: Knihovny tříd používají zabezpečení přístupu kódu ke specifikování oprávnění, které potřebují k tomu, aby byly přístupné. Měli byste znát oprávnění požadovaná pro přístup k libovolné knihovně, která používá váš kód.

  • Transparentní kód: V rozhraní .NET Framework verze 4 a novějším, musíte vedle identifikace konkrétních oprávnění také určit, zda by váš kód měl běžet jako transparentní pro zabezpečení. Kód transparentní pro zabezpečení nemůže volat typy a členy, kteří jsou identifikování jako kritičtí pro zabezpečení. Toto pravidlo platí pro plně důvěryhodné aplikace, jakož i pro částečně důvěryhodné aplikace. Další informace naleznete v tématu Using Secure Class Libraries a Kód transparentní pro zabezpečení.

Viz také

Koncepty

Psaní ověřovatelného kódu zajišťující bezpečnost typů

Syntaxe zabezpečení

Požadování oprávnění

Použití zabezpečených knihoven tříd

Zabezpečení přístupu kódu