Dialogfeld "Sicherheitswarnung" (MSBuild-Projektdatei)

Aktualisiert: November 2007

In Visual Studio 2005 und höheren Versionen können Sie eine MSBuild-Projektdatei anpassen, um den Buildprozess neu zu definieren. Teile des in der Projektdatei definierten Buildvorgangs werden zur Entwurfszeit ausgeführt, unmittelbar nachdem ein Projekt in die integrierte Entwicklungsumgebung (IDE) geladen wurde. Das Dialogfeld Sicherheitswarnung erkennt angepasste Projektdateien, von denen ein Sicherheitsrisiko ausgeht. Sie können in diesem Dialogfeld auswählen, wie das Projekt von der IDE geöffnet werden soll.

UI-Elemente

  • Weitere Details
    Öffnet ein Dialogfeld, in dem erläutert wird, warum die Projektdatei als mögliches Sicherheitsrisiko eingestuft wurde.

  • Projekt zum Durchsuchen laden
    Öffnet das Projekt mit erhöhter Sicherheit in der IDE. Mithilfe dieser Option können Sie den Projektinhalt durchsuchen; einige Funktionen wie IntelliSense sind jedoch blockiert. Wenn ein Projekt zum Durchsuchen geladen wird, können Aktionen wie das Erstellen, Bereinigen, Veröffentlichen oder Öffnen von Designern weiterhin ein Sicherheitsrisiko darstellen.

  • Projekt auf normale Weise laden
    Öffnet das Projekt auf normale Weise in der IDE. Verwenden Sie diese Option, wenn die Quelle vertrauenswürdig ist und Sie die möglichen Gefahren einschätzen können. Die Projektfunktionalität wird von der IDE nicht beschränkt, und für dieses Projekt wird keine erneute Aufforderung angezeigt.

  • Warnung für jedes Projekt in der Projektmappe anzeigen
    Aktivieren Sie diese Option, damit für jedes Projekt in der Projektmappe eine Aufforderung angezeigt wird.

Feststellen unsicherer Projektdateien

Es gibt mehrere Gründe, warum eine Projektdatei als mögliches Sicherheitsrisiko erkannt wird. Diese lauten wie folgt:

  • Die Projektdatei enthält mindestens ein nicht standardmäßiges Import-Element.

  • Durch die Projektdatei wird mindestens ein Ziel überschrieben, das möglicherweise unsicher ist. Weitere Informationen zu Zielen finden Sie unter MSBuild-Ziele.

  • Durch die Projektdatei wird mindestens eine Eigenschaft überschrieben, die möglicherweise unsicher ist. Weitere Informationen zu Eigenschaften finden Sie unter MSBuild-Eigenschaften.

  • Durch die Projektdatei wird mindestens ein Element definiert, das möglicherweise unsicher ist. Weitere Informationen zu Elementen finden Sie unter MSBuild-Elemente.

  • Die Projektdatei enthält mindestens ein UsingTask-Element.

  • Projektelemente befinden sich an einem möglicherweise unsicheren Speicherort.

Nicht standardmäßige Import-Elemente

Eine Liste von TARGETS-Standarddateien wird unter HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports\ in der Registrierung gespeichert. Wenn eine TARGETS-Datei, die nicht in der Registrierung gespeichert ist, von einer Projektdatei importiert wird, wird sie als mögliches Sicherheitsrisiko angesehen.

Möglicherweise gefährliche Ziele

Die IDE führt mehrere Ziele aus, während ein Projekt geladen wird. Wenn eines dieser Ziele in einer benutzerdefinierten Projektdatei überschrieben wurde, wird es als mögliches Sicherheitsrisiko angesehen. Die Ziele, die beim Laden eines Projekts von der IDE ausgeführt werden, umfassen Folgendes:

  • Compile

  • GetFrameworkPaths

  • AllProjectOutputGroupsDependencies

  • AllProjectOutputGroups

  • CopyRunEnvironmentFiles

  • ResolveComReferences

  • ResolveAssemblyReferences

  • ResolveNativeReferences

Möglicherweise gefährliche Eigenschaften

Die folgende Liste erläutert die grundlegenden Typen von möglicherweise gefährlichen Eigenschaften:

  • Im DependsOn-Attribut möglicherweise gefährlicher Ziele verwendete Eigenschaften

  • In den Project-Attributen von Import-Elementen, die in sicheren TARGETS-Dateien verwendet werden, verwendete Eigenschaften

  • Von möglicherweise gefährlichen Zielen oder deren Aufgaben verwendete Eigenschaften

  • Eigenschaften, deren Name mit einem Unterstrich (_) anfängt

  • Bestimmte Eigenschaften werden von der IDE verwendet, um möglicherweise gefährliche Ziele, Elemente und Eigenschaften zu verwalten. Diese Eigenschaften können nicht in einer Projektdatei überschrieben werden. Es handelt sich um die folgenden Eigenschaften:

  • LoadTimeSensitiveTargets

  • LoadTimeSensitiveProperties

  • LoadTimeSensitiveItems

  • LoadTimeCheckItemLocation

Möglicherweise gefährliche Elemente

Bestimmte von den importierten TARGETS-Dateien verwendete Elemente können in einer Projektdatei nicht überschrieben werden. Wenn mindestens eines dieser Elemente überschrieben wird, gilt das Projekt als mögliches Sicherheitsrisiko.

UsingTask-Elemente

Möglicherweise unsicherer Code kann von einer benutzerdefinierten Aufgabe ausgehen. Deshalb werden alle Projektdateien, die mindestens ein UsingTask-Element enthalten, als mögliches Sicherheitsrisiko angesehen.

Projektelemente an möglicherweise gefährlichen Speicherorten

Einige Elemente in normalerweise sicheren TARGETS-Dateien verwenden benutzerdefinierte Projekteigenschaften als Pfade. Um zu verhindern, dass eine wichtige Datei durch ein Element überschrieben wird, werden Projektdateien mit Elementpfaden, die in eines der folgenden Verzeichnisse oder beliebige seiner Unterverzeichnisse ausgewertet werden, als mögliches Sicherheitsrisiko angesehen. Dies trifft nicht zu, wenn sich die Projektdateien ebenfalls im Projektmappendatei- oder Projektdateiverzeichnis oder einem seiner Unterverzeichnisse befinden.

  • Das Stammverzeichnis eines beliebigen Laufwerks

  • Das Windows-Verzeichnis, z. B. C:\Windows\.

  • Das Programmdateiverzeichnis, z. B. C:\Programme\.

Siehe auch

Konzepte

MSBuild

Weitere Ressourcen

MSBuild-Referenz

MSBuild-Grundlagen