Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Entwickeln eines Visualisierers kann potenzielle Sicherheitsbedrohungen mit sich bringen. Für diese potenziellen Bedrohungen gibt es derzeit keine bekannten Exploits, aber Entwickler sollten sie kennen und geeignete Sicherheitsvorkehrungen ergreifen, wie hier beschrieben, um sich vor zukünftigen Exploits zu schützen.
Debugger-Visualisierungen erfordern höhere Berechtigungen, als sie von einer teilweise vertrauenswürdigen Anwendung erlaubt werden. Visualisierer werden nicht geladen, wenn Sie im Code mit eingeschränkter Vertrauensstellung angehalten sind. Zum Debuggen mithilfe eines Visualizers müssen Sie den Code mit voller Vertrauensstufe ausführen.
Hinweis
Code Access Security (CAS) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.
Mögliche bösartige Debuggee-Komponente
Visualizer bestehen aus mindestens zwei Klassen: einer auf der Debuggerseite und einer auf der Debuggee-Seite. Visualizer werden häufig in separaten Assemblys bereitgestellt, die in speziellen Verzeichnissen abgelegt werden, aber sie können auch aus dem Debuggee geladen werden. In diesem Fall übernimmt der Debugger Code aus dem Debuggee und führt ihn innerhalb des Debuggers mit voller Vertrauenswürdigkeit aus.
Das Ausführen von Code auf der Debuggee-Seite mit vollständigem Vertrauen wird problematisch, wenn der Debuggee nicht vollständig vertrauenswürdig ist. Wenn ein Visualizer versucht, eine partielle Vertrauensassembly aus dem Debuggee in den Debugger zu laden, beendet Visual Studio die Visualisierung.
Es gibt jedoch noch eine geringfügige Sicherheitsanfälligkeit. Die Debuggee-Seite kann mit einer Debugger-Seite in Verbindung gebracht werden, die aus einer anderen Quelle als dem Debuggee geladen wurde. Die debuggee-Seite kann dann die vertrauenswürdige Debuggerseite anweisen, Aktionen in deren Auftrag auszuführen. Wenn die vertrauenswürdige debuggerseitige Klasse einen Mechanismus zum Löschen dieser Datei verfügbar macht, könnte beispielsweise die teilweise vertrauenswürdige Debuggee diesen Mechanismus aufrufen, wenn der Benutzer seine Visualisierung aufruft.
Um diese Sicherheitsanfälligkeit zu mindern, achten Sie auf die Schnittstellen, die von Ihrer Visualisierung verfügbar gemacht werden.