Share via


ClickOnce-Bereitstellung und Sicherheit

Aktualisiert: November 2007

Mithilfe der ClickOnce-Technologie bereitgestellte Anwendungen werden in einem "Sandkasten" ("sandbox") mit einer begrenzten Menge von Berechtigungen ausgeführt, die auf einer Sicherheitszone beruhen. In der folgenden Tabelle werden die Standardberechtigungen aufgelistet, die auf dem Bereitstellungsspeicherort beruhen:

Bereitstellungsspeicherort

Sicherheitszone

Ausführen vom Web

Internetzone

Installieren vom Web

Internetzone

Installieren aus einer Dateifreigabe im Netzwerk

Intranetzone

Installieren von CD-ROM

Voll vertrauenswürdig

Die Standardberechtigungen basieren auf dem Speicherort, von dem aus die Originalversion der Anwendung bereitgestellt wurde. Aktualisierungen der Anwendung erben diese Berechtigungen. Falls die Anwendung so konfiguriert ist, dass sie an einem Web- oder Netzwerkspeicherort nach Aktualisierungen sucht und eine neuere Version zur Verfügung steht, kann die ursprüngliche Installation statt der Berechtigung Volle Vertrauenswürdigkeit u. U. Berechtigungen für die Internet- oder Intranetzone erhalten. Um zu verhindern, dass Benutzer Eingabeaufforderungen erhalten, kann ein Systemadministrator eine ClickOnce-Bereitstellungsrichtlinie angeben, die einen bestimmten Anwendungsherausgeber als vertrauenswürdige Quelle definiert. Für Computer, auf denen diese Richtlinie bereitgestellt wurde, werden Berechtigungen automatisch gewährt, und es werden keine Aufforderungen an Benutzer ausgegeben.

Sicherheit und Berechtigungen

Als Entwickler müssen Sie sicherstellen, dass Ihre Anwendung mit den geeigneten Berechtigungen ausgeführt wird.

Hinweis:

Visual Studio ermöglicht Ihnen, die Anwendung innerhalb der Zielsicherheitszone zu debuggen. Darüber hinaus werden Sie beim Entwickeln sicherer Anwendungen unterstützt.

Gelegentlich kann eine ClickOnce-Anwendung erhöhte Berechtigungen erfordern. Beispielsweise kann eine Anwendung, die mit einem Excel-Arbeitsblatt interagieren muss, Berechtigungen benötigen, die über die für die Internet- bzw. Intranetzone definierten hinausgehen. Wenn eine Anwendung erhöhte Berechtigungen erfordert, wird der Benutzer während der Installation aufgefordert, diese Berechtigung zu gewähren. Wenn der Benutzer dies bestätigt, wird die Anwendung installiert. Andernfalls wird der Installationsvorgang angehalten.

Hinweis:

Um solche Aufforderungen zu verhindern, kann ein Systemadministrator eine ClickOnce-Bereitstellungsrichtlinie definieren, die einen bestimmten Anwendungsherausgeber als vertrauenswürdige Quelle definiert. Auf Computern, auf denen diese Richtlinie bereitgestellt wurde, werden Berechtigungen automatisch gewährt, und es werden keine Aufforderungen an Benutzer ausgegeben.

Berechtigungen für eine Anwendung werden durch die Einstellungen im <trustInfo>-Element (ClickOnce-Anwendung)-Element des Anwendungsmanifests bestimmt. Visual Studio generiert diese Informationen auf der Grundlage der Einstellungen, die sich auf der Eigenschaftenseite Sicherheit für das betreffende Projekt befinden. Einer ClickOnce-Anwendung werden nur bestimmte, von ihr angeforderte Berechtigungen gewährt. Wenn für den Dateizugriff beispielsweise Berechtigungen für volle Vertrauenswürdigkeit erforderlich sind und die Anwendung eine Dateizugriffsberechtigung anfordert, wird ihr nur eine Berechtigung für den Dateizugriff und keine volle Vertrauenswürdigkeit gewährt. Beim Entwickeln einer ClickOnce-Anwendung müssen Sie unbedingt darauf achten, dass Sie nur die Berechtigungen anfordern, die für die Anwendung tatsächlich erforderlich sind.

Außerdem muss das Bereitstellungsmanifest mit der Authenticode-Signatur signiert werden. Dem Benutzer werden während der Installation die Herausgeberinformationen auf der Grundlage der Authenticode-Signatur im Dialogfeld für Berechtigungen angezeigt, um nachzuweisen, dass die Anwendung aus einer vertrauenswürdigen Quelle stammt. Windows Software Development Kit (SDK) enthält ein Tool zum Signieren von Dateien, Signaturtool (SignTool.exe), mit dessen Hilfe das Manifest signiert werden kann. (Beachten Sie, dass das Signierungstool signcode.exe veraltet ist.)

Hinweis:

Die in Visual Studio 2003 und früheren Versionen verfügbare Signierungsfunktion wurde aus den Setup- und Bereitstellungsprojekten (Setup-Projekte, Websetup-Projekte, CAB-Projekte und Mergemodule) entfernt. Wenn Sie ein Visual Studio 2003-Projekt mit aktivierter Signierung in Visual Studio 2005 importiert haben oder Signierung für Ihr Bereitstellungsprojekt aktivieren möchten, müssen Sie die Dateien in der Buildausgabe nach dem Build mit Signaturtool (SignTool.exe) signieren. Weitere Informationen dazu finden Sie unter Die Datei '<Datei>' wurde nicht signiert.

Formularbasierte ASP.NET-Authentifizierung

Wenn Sie steuern möchten, auf welche Bereitstellung Benutzer jeweils zugreifen können, sollten Sie den anonymen Zugriff auf ClickOnce-Anwendungen, die auf einem Webserver bereitgestellt wurden, verhindern. Stattdessen sollten Sie Benutzern vorrangig Zugriff auf diejenigen Bereitstellungen gewähren, die (mithilfe der Windows NT-Authentifizierung) unter der Identität des jeweiligen Benutzers installiert wurden.

Wenn die Bereitstellung in einer Umgebung ohne Windows NT-Authentifizierung erfolgt, könnten Sie beispielsweise versuchen, die formularbasierte ASP.NET-Authentifizierung zum Authentifizieren von Benutzern zu verwenden. ClickOnce unterstützt jedoch wegen der selbst verwendeten permanenten Cookies nicht die formularbasierte Authentifizierung. Diese Cookies stellen ein Sicherheitsrisiko dar, da sie im Internet Explorer-Cache gespeichert sind und von Hackern ausspioniert werden können. Wenn Sie ClickOnce-Anwendungen bereitstellen, wird daher außer der Windows NT-Authentifizierung kein anderes Authentifizierungsszenario unterstützt.

Übergeben von Argumenten

Eine weitere Sicherheitsüberlegung ist erforderlich, wenn Sie Argumente in eine ClickOnce-Anwendung übergeben müssen. ClickOnce gibt Entwicklern die Möglichkeit, eine Abfragezeichenfolge an Anwendungen zu übergeben, die über das Web bereitgestellt werden. Die Abfragezeichenfolge besteht aus einer Reihe von Name/Wert-Paaren am Ende der URL, mit der die Anwendung gestartet wird:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

Abfragezeichenfolgenargumente werden standardmäßig deaktiviert. Um sie zu aktivieren, muss das trustUrlParameters-Attribut im Bereitstellungsmanifest der Anwendung festgelegt werden. Dieser Wert kann von Visual Studio und von MageUI.exe aus festgelegt werden. Eine ausführliche Beschreibung der Schritte zur Aktivierung der Übergabe von Abfragezeichenfolgen finden Sie unter Gewusst wie: Abrufen von Abfragezeichenfolgen-Informationen in einer ClickOnce-Anwendung.

Übergeben Sie Argumente, die über eine Abfragezeichenfolge abgerufen wurden, nie an eine Datenbank oder an die Befehlszeile, ohne die Argumente auf ihre Sicherheit zu überprüfen. Unsichere Argumente sind Argumente, die Datenbank- oder Befehlszeilen-Escapezeichen enthalten, mit denen böswillige Benutzer die Möglichkeit erhalten können, Ihre Anwendung für die Ausführung beliebiger Befehle zu manipulieren.

Hinweis:

Abfragezeichenfolgenargumente sind die einzige Möglichkeit, Argumente beim Starten an eine ClickOnce-Anwendung zu übergeben. Über die Befehlszeile können Argumente nicht an eine ClickOnce-Anwendung übergeben werden.

Bereitstellen von verborgenen Assemblys

Unter Umständen möchten Sie Ihre Anwendung mit Dotfuscator verbergen, damit andere nicht mit Reverse Engineering den Code ermitteln können. Das Verbergen von Assemblys ist jedoch nicht in den Visual Studio-IDE- oder ClickOnce-Bereitstellungsprozess integriert. Daher müssen Sie die Anwendung außerhalb des Bereitstellungsprozesses verbergen, unter Umständen nach dem Build. Nach der Erstellung des Projekts führen Sie die folgenden Schritte manuell außerhalb von Visual Studio aus:

  1. Verbergen Sie die Anwendung mit Dotfuscator. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung.

  2. Verwenden Sie Mage.exe oder MageUI.exe, um die ClickOnce-Manifeste zu generieren und sie zu signieren. Weitere Informationen finden Sie unter Tool zum Generieren und Bearbeiten von Manifesten (Mage.exe) und unter Tool zum Generieren und Bearbeiten von Manifesten, grafischer Client (MageUI.exe).

  3. Veröffentlichen (kopieren) Sie die Dateien manuell an den Quellspeicherort der Bereitstellung (Webserver, UNC-Freigabe oder CD-ROM).

Siehe auch

Konzepte

Auswählen einer Bereitstellungsstrategie

Auswählen einer Strategie für die ClickOnce-Bereitstellung

Referenz

File Signing-Tool (Signcode.exe)

Weitere Ressourcen

ClickOnce-Bereitstellung