Zabezpieczanie aplikacji ClickOnce

Aplikacje ClickOnce podlegają ograniczeniom zabezpieczeń dostępu kodu w programie .NET Framework, co pomaga ograniczyć dostęp tego kodu do chronionych zasobów i operacji.Z tego powodu ważne jest, aby zrozumieć, w jaki sposób ograniczenia dostępu kodu wpływają na sposób pisania aplikacji ClickOnce.W celu ograniczenia dostępu aplikacje mogą używać pełnego zaufania lub stref częściowych, takich jak strefy Internet i Intranet.

Ponadto technologia ClickOnce używa certyfikatów w celu weryfikowania autentyczności wydawcy aplikacji oraz podpisywania aplikacji i manifestów wdrożenia, co ma na celu zagwarantowanie, że pliki nie zostały w nieuprawniony sposób zmodyfikowane.Podpisywanie to opcjonalny krok, który ułatwia zmienianie plików aplikacji po wygenerowaniu manifestów.Jednak bez podpisanych manifestów trudno jest zagwarantować, że instalator aplikacji nie zostanie zmodyfikowany w wyniku ataku przeprowadzonego przez osobę z wewnątrz organizacji.Z tego powodu zaleca się podpisywanie aplikacji i manifestów wdrożenia, ponieważ pomaga to w zabezpieczaniu aplikacji.

Strefy

Aplikacje wdrażane przy użyciu technologii ClickOnce są ograniczone do zestawu uprawnień i akcji zdefiniowanych przez strefę zabezpieczeń.Strefy zabezpieczeń są zdefiniowane w programie Internet Explorer i są oparte na lokalizacji aplikacji.W poniższej tabeli wymieniono uprawnienia domyślne określone na podstawie lokalizacji wdrożenia:

Lokalizacja wdrożenia

Strefa zabezpieczeń

Uruchamianie z sieci Web

Strefa Internet

Instalacja z sieci Web

Strefa Internet

Instalacja z sieciowego udziału plików

Strefa Lokalny intranet

Instalacja z dysku CD-ROM

Pełne zaufanie

Uprawnienia domyślne są określane na podstawie lokalizacji, z której została wdrożona oryginalna wersja aplikacji; aktualizacje aplikacji będą dziedziczyć te uprawnienia.Jeśli aplikacja jest skonfigurowana do sprawdzania, czy w sieci Web lub lokalizacji sieciowej są dostępne aktualizacje, oryginalna instalacja może otrzymać uprawienia dla strefy Internet lub Intranet, a nie uprawnienia pełnego zaufania.Aby zapobiec monitowaniu użytkowników, administrator systemu może określić zasady wdrażania technologii ClickOnce definiujące określonego wydawcę aplikacji jako zaufane źródło.Na komputerach, na których zostaną wdrożone te zasady, uprawnienia będą udzielane automatycznie i użytkownicy nie będą monitowani.Aby uzyskać więcej informacji, zobacz Przegląd wdrażania zaufanych aplikacji.Aby skonfigurować zaufane wdrożenie aplikacji, certyfikat można zainstalować na poziomie komputera lub przedsiębiorstwa.Aby uzyskać więcej informacji, zobacz Porady: dodawanie zaufanego wydawcy do komputera klienckiego dla aplikacji ClickOnce.

Zasady zabezpieczeń dostępu kodu

Uprawnienia dla aplikacji są ustalane przez ustawienia w elemencie <trustInfo> — Element (Aplikacja ClickOnce) manifestu aplikacji.Program Visual Studio generuje te informacje automatycznie na podstawie ustawień na stronie właściwości Zabezpieczenia projektu.Aplikacji ClickOnce są udzielane tylko te uprawnienia, których aplikacja zażąda.Na przykład w sytuacji, gdy dostęp do plików wymaga uprawnień pełnego zaufania, a aplikacja żąda uprawnienia dostępu do pliku, zostanie jej udzielone tylko uprawnienie dostępu do plików, a nie uprawnienia pełnego zaufania.Podczas tworzenia aplikacji ClickOnce należy pamiętać, że są żądane tylko uprawnienia, których aplikacja potrzebuje.W większości przypadków można użyć stref Internet lub Lokalny intranet, aby ograniczyć aplikację do częściowego zaufania.Aby uzyskać więcej informacji, zobacz Porady: ustawienie strefy zabezpieczeń dla aplikacji ClickOnce.Jeśli aplikacja wymaga uprawnień niestandardowych, można utworzyć strefę niestandardową.Aby uzyskać więcej informacji, zobacz Porady: ustawienie uprawnień niestandardowych dla aplikacji ClickOnce.

Dołączenie uprawnienia, które nie wchodzi w skład domyślnego zestawu uprawnień dla strefy, z której została wdrożona aplikacja, spowoduje, że użytkownik końcowy będzie w czasie instalacji lub aktualizacji monitowany o udzielenie uprawnienia.Aby zapobiec monitowaniu użytkowników, administrator systemu może określić zasady wdrażania technologii ClickOnce definiujące określonego wydawcę aplikacji jako zaufane źródło.Na komputerach, na których zostaną wdrożone te zasady, uprawnienia będą udzielane automatycznie i użytkownicy nie będą monitowani.

Deweloper jest odpowiedzialny za zagwarantowanie, że jego aplikacja będzie działać z odpowiednimi uprawnieniami.Jeśli aplikacja w czasie wykonywania zażąda uprawnień spoza strefy, może wystąpić wyjątek zabezpieczeń.Program Visual Studio umożliwia debugowanie aplikacji w docelowej strefie zabezpieczeń i oferuje pomoc w zakresie projektowania bezpiecznych aplikacji.Aby uzyskać więcej informacji, zobacz Porady: debugowanie aplikacji ClickOnce przy użyciu ograniczonych uprawnień.

Aby uzyskać więcej informacji dotyczących zabezpieczeń dostępu kodu i technologii ClickOnce, zobacz Zabezpieczenia dostępu kodu dla aplikacji ClickOnce.

Certyfikaty podpisywania kodu

Aby opublikować aplikację przy użyciu wdrożenia ClickOnce, można podpisać manifesty aplikacji i wdrożenia, używając pary kluczy publiczny/prywatny.Narzędzia do podpisywania manifestu są dostępne na stronie Podpisywanie w Projektancie projektu.Aby uzyskać więcej informacji, zobacz Strona podpisywania, Projektant projektu.Można też podpisać manifesty za pomocą pliku klucza podczas procesu publikowania, używając kreatora Publish Wizard.

Po podpisaniu manifestów informacje o wydawcy określone na podstawie podpisu Authenticode będą wyświetlane użytkownikowi w oknie dialogowym uprawnień podczas instalacji, aby pokazać mu, że aplikacja pochodzi z zaufanego źródła.

Aby uzyskać więcej informacji dotyczących technologii ClickOnce i certyfikatów, zobacz ClickOnce i podpis Authenticode.

Uwierzytelnianie oparte na formularzach ASP.NET

Aby móc określać, do których wdrożeń będą mieć dostęp poszczególni użytkownicy, nie należy umożliwiać anonimowego dostępu do aplikacji ClickOnce wdrożonych na serwerze sieci Web.Zamiast tego należy umożliwić użytkownikom dostęp do zainstalowanych wdrożeń na podstawie tożsamości użytkownika, używając uwierzytelniania systemu Windows.

Technologia ClickOnce nie obsługuje uwierzytelniania opartego na formularzach ASP.NET, ponieważ używają one trwałych plików cookies; te pliki stanowią zagrożenie bezpieczeństwa, ponieważ są przechowywane w pamięci podręcznej programu Internet Explorer i mogą stać się celem ataku.Dlatego w przypadku wdrażania aplikacji ClickOnce nie są obsługiwane scenariusze uwierzytelniania nieobejmujące uwierzytelniania systemu Windows.

Przekazywanie argumentów

Dodatkowa kwestia związana zabezpieczeniami pojawia się, jeśli trzeba przekazać argumenty do aplikacji ClickOnce.Technologia ClickOnce umożliwia deweloperom dostarczenie ciągu zapytania do aplikacji wdrażanych za pośrednictwem sieci Web.Ciąg zapytania ma formę serii par nazwa-wartość umieszczonych na końcu adresu URL używanego do uruchamiania aplikacji:

http://nazwa_serwera.adatum.com/WindowsApp1.application?username=nazwa_użytkownika

Domyślnie argumenty ciągu zapytania są wyłączone.Aby je włączyć, trzeba ustawić atrybut trustUrlParameters w manifeście wdrożenia aplikacji.Tę wartość można ustawić w programach Visual Studio i MageUI.exe.Aby zapoznać się ze szczegółowymi krokami włączania przekazywania ciągów zapytania, zobacz Porady: pobieranie informacji o ciągu kwerendy w aplikacji ClickOnce w trybie online.

Nigdy nie należy przekazywać argumentów odebranych za pośrednictwem ciągu zapytania do bazy danych lub wiersza polecenia bez sprawdzenia, czy argumenty są bezpieczne.Argumentami niebezpiecznymi są argumenty zawierające znaki ucieczki bazy danych lub wiersza polecenia, które mogłyby umożliwić złośliwemu użytkownikowi „zmuszenie” aplikacji do wykonywania dowolnie wybranych przez niego poleceń.

[!UWAGA]

Argumenty ciągu zapytania to jedyny sposób przekazywania argumentów do aplikacji ClickOnce przy uruchamianiu.Nie można przekazywać argumentów do aplikacji ClickOnce z wiersza polecenia.

Wdrażanie zestawów zasłoniętych

Można zasłonić swoją aplikację, używając narzędzia Dotfuscator, aby uniemożliwić innym osobom odtworzenie kodu.Jednak funkcja zasłaniania zestawu nie jest zintegrowana ze środowiskiem IDE programu Visual Studio i procesem wdrażania technologii ClickOnce.Dlatego zasłanianie trzeba będzie wykonać poza procesem wdrażania, być może w ramach kroków wykonywanych po kompilacji.Po skompilowaniu projektu można wykonać następujące kroki ręcznie poza programem Visual Studio:

  1. Wykonaj zasłanianie przy użyciu narzędzia Dotfuscator.

  2. Użyj programu Mage.exe lub MageUI.exe, aby wygenerować manifesty technologii ClickOnce i je podpisać.Aby uzyskać więcej informacji, zobacz Mage.exe (Narzędzie generowania manifestu i edytowania) i MageUI.exe (Narzędzie generowania i edytowania manifestu, klient grafiki).

  3. Ręcznie opublikuj (skopiuj) pliki do lokalizacji źródła wdrożenia (serwer sieci Web, udział UNC lub dysk CD-ROM).

Zobacz też

Koncepcje

Wskazówki dotyczące wdrażania ClickOnce

Wybieranie strategii wdrażania ClickOnce