.NET Code Access Security: Nützliche oder einfach nur zu kompliziert?
-
20-08-2019 - |
Frage
siehe auch „Code Access Security“ von jede reale Welt verwenden?
Ich möchte ein paar andere Meinungen dazu bekommen ...
Ich mag die Idee von Codezugriffssicherheit für Desktop-Anwendungen. Aber in der Lebensdauer von .NET muss ich zugeben, ich hatte noch nie wirklich eine Situation, in der CAS hat tatsächlich etwas zu meinen Gunsten blockiert.
ich habe, hatte jedoch viele Male, wo etwas so einfach wie eine schnelle .NET-Anwendung über ein zugeordnetes Laufwerk teilt ein Unternehmen Codezugriffs Alptraum wird. Mit caspol.exe auszubrechen vertrauenswürdigen Pfadregeln zu erstellen und zu wissen, keine klare Art und Weise mit, warum versagte etwas macht es scheint, wie CAS Weg mehr Frustration auf die Prozessentwicklung und Implementierung fügt hinzu, als es in Sicherheit bietet.
würde Ich mag entweder einige Situationen zu hören, wo CAS hat eigentlich mehr als verletzt geholfen, oder wenn es andere Menschen gibt, frustriert mit seiner aktuellen Implementierung und Standardwerten.
Lösung
Das .NET-Team sie selbst zu dem gleichen Schluss wird die Montage Zugang comed haben Sicherheit für .NET # 4 überarbeitet werden. Werfen Sie einen Blick auf dieses Blog für weitere Informationen: .NET Sicherheits-Blog
Andere Tipps
Hier, hier! Ich habe viele der gleichen Frustrationen geteilt. Und natürlich die über Komplikation und schreckliche Dokumentation im Grunde empfehlen Entwickler, diese zu umgehen oder zu weit gefassten Regeln verwenden. Sicherheit wird immer eine harte Nuss für jeden, aber CAS ist wirklich schwierig, richtig zu machen.
Ich habe mit CAS zu tun hatte, aber es war nicht allzu schwierig, da ich es nur auf ein Dutzend Arbeitsplätze oder so einsetzen musste. Sie können auch die erforderlichen Einstellungen über Gruppenrichtlinien schieben.
Aber um Ihre Frage zu beantworten, nein, ich glaube nicht, dass jemals geholfen.
Schauen Sie auf der hellen Seite aber, beginnend mit .NET 3.5 können Sie Anwendungen über eine Netzwerkfreigabe ohne CAS ausgeführt werden.
Nach langen Suche ich auf diesem Blog-Eintrag aus dem CLR-Team gestoßen, das nicht nur bestätigt, dass CAS weggeht in .NET 4, sondern gibt auch einen großen Führer auf, was brechen und wie in Richtung des neuen Sandbox-Modells zu migrieren: neues Sicherheitsmodell: Der Umzug in einer Bessere Sandbox. Aus dem Artikel:
In Versionen von .NET Framework vor v4, hatten wir viele Möglichkeiten, die beschränken Berechtigungen einer Baugruppe oder sogar bestimmter Codepfad innerhalb der Baugruppe:
Stapel-walk-Modifikatoren: Verweigern, PermitOnly
Assembly-Level-Anfragen: RequestOptional, RequestRefuse, RequestMinimum
Richtlinienänderungen: caspol und AppDomain.SetPolicyLevel
Laden eine Baugruppe mit einer anderen Zone als MyComputer
In der Vergangenheit wurden diese APIs war ein Quelle der Verwirrung für Host und Anwendungsprogrammierer. In .Net Framework 4, sind diese Methoden der Beschränkung Berechtigungen sind veraltet markiert und wir hoffen, sie an einem Punkt in der entfernen Zukunft.
Die meisten belastend ist die Tatsache, dass all diese veralteten Methoden zur Herstellung einer Sandbox-Erstellung startet eine NotSupportedException
werfen. Dies ist besonders prekär für alle armen Seelen (wie ich), dass aus irgendeinem Grunde erforderlich CAS zu diesem Zeitpunkt in ihrer Organisation zu implementieren. Sie sind gewarnt worden.