Wie kann ich verhindern, dass meine Montage in nicht autorisierten Code den Zugriff auf .NET 2.0?

StackOverflow https://stackoverflow.com/questions/421137

  •  05-07-2019
  •  | 
  •  

Andere Tipps

In diesem Artikel:
http: // blogs.msdn.com/ericlippert/archive/2008/10/06/preventing-third-party-derivation-part-two.aspx

Vor allem dieses Teil:

  

In der letzten Versionen von .NET „volles Vertrauen bedeutet volles Vertrauen“. Das heißt, voll vertrauenswürdiger Code alle Anforderungen erfüllt, einschließlich den Anforderungen für Dinge wie „mit diesem Schlüssel signiert wurde“, ob es tatsächlich unterzeichnet wurde oder nicht.

     

Ist das nicht ein tödlicher Fehler im Sicherheitssystem? Nr Voll vertrauenswürdiger Code hatte immer die Fähigkeit, das zu tun, weil voll vertrauenswürdiger Code die Möglichkeit, den Beweis mit einer bestimmten Anordnung verbunden zu steuern hat. Wenn Sie die Beweise kontrollieren können, dann können Sie eine Baugruppe schmieden, die aussieht wie es von Microsoft kam, kein Problem. (Und wenn Sie bereits bösartigen Voll vertrauenswürdigen Code in Ihrem Prozess haben, dann haben Sie schon verloren - es ist nicht zum Imitieren von Microsoft signierten Baugruppen benötigt, oder. Es hat bereits die Macht zu tun, was der Benutzer tun kann)

Offensichtlich fühlten sich die .Net-Designer, dass dieses Attribut für volle Vertrauenswürdigkeit Code in .NET 1.x entweder nicht sehr effektiv war.

Wie Joel angegeben, Sie sind zu CAS kein Glück in Bezug. Allerdings können Sie in der Lage sein, die sich Ihnen in jeder Methode überprüfen tun müssen, mithilfe von Assembly.GetCallingAssembly () zu schützen, einen Verweis auf die Montage erhalten, die Aufrufcode enthält, dann den starken Namen manuell auf dieser Versammlung überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top