Was ist Codezugriffssicherheit in .NET?

8

Was ist CAS (Codezugriffssicherheit) in .NET und wie wird es erreicht? Was sind die Vorteile der Verwendung?

    
tush1r 10.04.2009, 15:31
quelle

2 Antworten

13

Die besten Links zum Thema CAS finden Sie auf meiner Delicious-Seite zum Thema .

Kurz gesagt, CAS ist die Sicherheits-Sandbox für .NET. Lokale Apps haben normalerweise volle Vertrauenswürdigkeit, was bedeutet, dass sie alles tun können. .NET-Anwendungen, die im Browser gehostet werden, können nicht viel tun. Dazwischen kann nahezu jede Sicherheitseinstellung mit CAS abgestimmt werden.

Es ist von Vorteil: große Kontrolle darüber, was .NET-Anwendungen können, selbst im Kontext des angemeldeten Benutzers. Der beste Teil davon, IMO, besteht darin, dass Sicherheitsüberprüfungen den Stack durchlaufen, so dass, selbst wenn Code eine Berechtigung hat, etwas zu tun, wenn diese Methode von einem anderen Programm aufgerufen wurde, für das keine Berechtigung hat etwas tun, wird diese Anfrage fehlschlagen (sofern keine besonderen Maßnahmen getroffen werden).

Die Schattenseiten: Es ist eine ziemlich komplexe Bestie zu lernen. Viele Probleme. Aber hoffentlich führen die Links, die ich zur Verfügung gestellt habe, dazu, dass Sie lernen, welche Details Sie wissen müssen.

    
Andrew Arnott 10.04.2009, 15:36
quelle
4

Code Access Security besteht aus den folgenden Elementen:

  • Berechtigungen
  • Berechtigungssätze
  • Codegruppen
  • Beweise
  • Richtlinie


Berechtigungen

Berechtigungen stellen den Zugriff auf eine geschützte Ressource oder die Fähigkeit zum Ausführen einer geschützten Operation dar. Das .NET Framework bietet mehrere Berechtigungsklassen, wie FileIOPermission (beim Arbeiten mit Dateien), UIPermission (Berechtigung zur Verwendung einer Benutzerschnittstelle), SecurityPermission (dies wird benötigt, um den Code auszuführen und kann sogar verwendet werden, um die Sicherheit zu umgehen) usw. Ich habe gewonnen Liste hier nicht alle Berechtigungsklassen auf, sie sind unten aufgelistet.

Berechtigungssätze

Ein Berechtigungssatz ist eine Sammlung von Berechtigungen. Sie können FileIOPermission und UIPermission in Ihr eigenes Berechtigungsset setzen und es "My_PermissionSet" nennen. Ein Berechtigungssatz kann eine beliebige Anzahl von Berechtigungen enthalten. FullTrust, LocalIntranet, Internet, Execution und Nothing sind einige der integrierten Berechtigungssätze in .NET Framework. FullTrust verfügt über alle Berechtigungen der Welt, während Nothing überhaupt keine Berechtigungen besitzt, nicht einmal das Recht zur Ausführung.

Codegruppen

Die Codegruppe ist eine logische Gruppierung von Code mit einer bestimmten Bedingung für die Mitgliedschaft. Code aus Ссылка kann zu einer Codegruppe gehören, Code, der einen bestimmten starken Namen enthält, kann zu einer anderen Codegruppe gehören und Code aus einer bestimmten Assembly kann gehören zu einer anderen Codegruppe. Es gibt integrierte Codegruppen wie "My_Computer_Zone", "LocalIntranet_Zone", "Internet_Zone" usw. Ähnlich wie Berechtigungssätze können wir Codegruppen erstellen, um unsere Anforderungen basierend auf den von .NET Framework bereitgestellten Beweisen zu erfüllen. Site, starker Name, Zone, URL sind einige der Arten von Beweisen.

Richtlinie

Sicherheitsrichtlinie ist der konfigurierbare Regelsatz, dem die CLR bei der Bestimmung der Berechtigungen für den Code folgt. Es gibt vier Richtlinienebenen - Enterprise, Machine, User und Application Domain, die unabhängig voneinander arbeiten. Jede Ebene hat ihre eigenen Codegruppen und Berechtigungssätze. Sie haben die unten angegebene Hierarchie.

  1. Unternehmen
  2. Maschine
  3. Benutzer
  4. Anwendungsdomäne
lasitha edirisooriya 12.10.2012 11:13
quelle

Tags und Links