Strategia zabezpieczeń WPF - zabezpieczenia platformy

Chociaż program Windows Presentation Foundation (WPF) udostępnia różne usługi zabezpieczeń, wykorzystuje również funkcje zabezpieczeń podstawowej platformy, w tym system operacyjny, CLR i Internet Explorer. Te warstwy łączą się w celu zapewnienia silnego, szczegółowego modelu zabezpieczeń obrony, który próbuje uniknąć pojedynczego punktu awarii, jak pokazano na poniższej ilustracji:

Diagram that shows the WPF security model.

W pozostałej części tego tematu omówiono funkcje w każdej z tych warstw, które odnoszą się konkretnie do platformy WPF.

Zabezpieczenia systemu operacyjnego

Podstawowe funkcje systemu Windows udostępniają kilka funkcji zabezpieczeń, które tworzą podstawę zabezpieczeń dla wszystkich aplikacji systemu Windows, w tym tych utworzonych za pomocą platformy WPF. W tym temacie omówiono zakres tych funkcji zabezpieczeń, które są ważne dla platformy WPF, a także sposób, w jaki platforma WPF integruje się z nimi w celu zapewnienia dalszej ochrony w głębi systemu.

Microsoft Windows XP Service Pack 2 (SP2)

Oprócz ogólnej przeglądu i wzmocnienia systemu Windows istnieją trzy kluczowe funkcje z systemu Windows XP z dodatkiem SP2, które omówimy w tym temacie:

  • /GS — kompilacja

  • Microsoft Windows Update.

/GS — kompilacja

System Windows XP z dodatkiem SP2 zapewnia ochronę przez ponowne kompilowanie wielu podstawowych bibliotek systemowych, w tym wszystkich zależności WPF, takich jak CLR, w celu ograniczenia przekroczania buforu. Jest to osiągane przy użyciu /GS parametru z kompilatorem wiersza polecenia C/C++. Mimo że przepełnienie buforu należy jawnie uniknąć, /GS kompilacja zapewnia przykład ochrony w głębi systemu przed potencjalnymi lukami w zabezpieczeniach, które są przypadkowo lub złośliwie utworzone przez nie.

W przeszłości przepełnienia buforu były przyczyną wielu luk w zabezpieczeniach o dużym wpływie. Przekroczenie buforu występuje, gdy osoba atakująca korzysta z luki w zabezpieczeniach kodu, która umożliwia wstrzyknięcie złośliwego kodu, który zapisuje poza granicami buforu. Dzięki temu osoba atakująca może przejąć proces, w którym kod jest wykonywany, zastępując zwracany adres funkcji, aby spowodować wykonanie kodu osoby atakującej. Wynikiem jest złośliwy kod, który wykonuje dowolny kod z tymi samymi uprawnieniami co porwany proces.

Na wysokim poziomie flaga -GS kompilatora chroni przed pewnymi potencjalnymi przepełnieniami buforu przez wstrzyknięcie specjalnego pliku cookie zabezpieczeń w celu ochrony adresu zwrotnego funkcji, która ma lokalne bufory ciągów. Po powrocie funkcji plik cookie zabezpieczeń jest porównywany z poprzednią wartością. Jeśli wartość uległa zmianie, mogło wystąpić przepełninie buforu i proces został zatrzymany z warunkiem błędu. Zatrzymanie procesu uniemożliwia wykonanie potencjalnie złośliwego kodu. Aby uzyskać więcej informacji, zobacz -GS (sprawdzanie zabezpieczeń buforu).

WPF jest kompilowany z flagą /GS, aby dodać kolejną warstwę obrony do aplikacji WPF.

Windows Vista

Użytkownicy WPF w systemie Windows Vista skorzystają z dodatkowych ulepszeń zabezpieczeń systemu operacyjnego, w tym "Dostęp użytkowników z najmniejszymi uprawnieniami", kontroli integralności kodu i izolacji uprawnień.

Kontrola konta użytkownika

Obecnie użytkownicy systemu Windows mają tendencję do uruchamiania z uprawnieniami administratora, ponieważ wiele aplikacji wymaga ich do instalacji lub wykonania albo obu tych uprawnień. Możliwość zapisywania domyślnych ustawień aplikacji w rejestrze jest jednym z przykładów.

Uruchamianie z uprawnieniami administratora naprawdę oznacza, że aplikacje są wykonywane z procesów, które mają przyznane uprawnienia administratora. Wpływ zabezpieczeń jest taki, że każdy złośliwy kod, który przejmuje proces uruchomiony z uprawnieniami administratora, automatycznie dziedziczy te uprawnienia, w tym dostęp do krytycznych zasobów systemowych.

Jednym ze sposobów ochrony przed tym zagrożeniem bezpieczeństwa jest uruchamianie aplikacji z najmniejszą ilością wymaganych uprawnień. Jest to znane jako zasada najniższych uprawnień i jest podstawową funkcją systemu operacyjnego Windows. Ta funkcja jest nazywana kontrolą konta użytkownika (UAC) i jest używana przez funkcję kontroli konta użytkownika systemu Windows na dwa kluczowe sposoby:

  • Aby domyślnie uruchamiać większość aplikacji z uprawnieniami kontroli konta użytkownika, nawet jeśli użytkownik jest administratorem; tylko aplikacje, które wymagają uprawnień administratora, będą uruchamiane z uprawnieniami administratora. Aby można było uruchamiać z uprawnieniami administracyjnymi, aplikacje muszą być jawnie oznaczone w manifeście aplikacji lub jako wpis w zasadach zabezpieczeń.

  • Aby zapewnić rozwiązania zgodności, takie jak wirtualizacja. Na przykład wiele aplikacji próbuje zapisać w ograniczonych lokalizacjach, takich jak C:\Program Files. W przypadku aplikacji wykonywanych w ramach kontroli dostępu użytkownika istnieje alternatywna lokalizacja dla użytkownika, która nie wymaga uprawnień administratora do zapisu. W przypadku aplikacji działających w ramach kontroli dostępu użytkownika kontrola konta użytkownika wirtualizuje C:\Program Files, aby aplikacje, które uważają, że piszą do niej, faktycznie zapisują się w lokalizacji alternatywnej dla poszczególnych użytkowników. Taka praca ze zgodnością umożliwia systemowi operacyjnemu uruchamianie wielu aplikacji, które nie mogły wcześniej działać w kontroli dostępu użytkownika.

Sprawdzanie integralności kodu

System Windows Vista obejmuje dokładniejsze kontrole integralności kodu, aby zapobiec wstrzyknięciu złośliwego kodu do plików systemowych lub do jądra w czasie ładowania/wykonywania. Wykracza to poza ochronę plików systemowych.

Ograniczony proces praw dla aplikacji hostowanych w przeglądarce

Aplikacje WPF hostowane w przeglądarce są wykonywane w piaskownicy strefy internetowej. Integracja WPF z programem Microsoft Internet Explorer rozszerza tę ochronę dzięki dodatkowej obsłudze.

Ostrzeżenie

XBAPs wymagają obsługi starszych przeglądarek, takich jak Internet Explorer i Firefox. Te starsze wersje przeglądarki są zwykle nieobsługiwane w systemach Windows 10 i Windows 11. Nowoczesne przeglądarki nie obsługują już technologii wymaganej dla aplikacji XBAP ze względu na zagrożenia bezpieczeństwa. Wtyczki obsługujące XBAPs nie są już obsługiwane.

Ponieważ aplikacje przeglądarki XAML (XBAPs) są zwykle w trybie piaskownicy przez zestaw uprawnień strefy internetowej, usunięcie tych uprawnień nie szkodzi aplikacjom przeglądarki XAML (XBAPs) z perspektywy zgodności. Zamiast tego tworzona jest dodatkowa warstwa ochrony w głębi systemu; Jeśli aplikacja w trybie piaskownicy może wykorzystać inne warstwy i porwać proces, proces nadal będzie miał ograniczone uprawnienia.

Zobacz Używanie konta użytkownika z najniższymi uprawnieniami.

Zabezpieczenia środowiska uruchomieniowego języka wspólnego

Środowisko uruchomieniowe języka wspólnego (CLR) oferuje szereg kluczowych korzyści zabezpieczeń, które obejmują weryfikację i weryfikację, zabezpieczenia dostępu do kodu (CAS) i metodologię krytycznego zabezpieczeń.

Walidacja i weryfikacja

Aby zapewnić izolację i integralność zestawu, clR używa procesu weryfikacji. Sprawdzanie poprawności CLR gwarantuje, że zestawy są izolowane, sprawdzając ich format pliku przenośnego pliku wykonywalnego (PE) dla adresów, które znajdują się poza zestawem. Walidacja środowiska CLR weryfikuje również integralność metadanych osadzonych w zestawie.

Aby zapewnić bezpieczeństwo typów, pomóż zapobiegać typowym problemom z zabezpieczeniami (np. przepełnieniu buforu) i włączyć piaskownicę za pośrednictwem izolacji podprocesu, zabezpieczenia CLR korzystają z koncepcji weryfikacji.

Aplikacje zarządzane są kompilowane w języku Microsoft Intermediate Language (MSIL). Gdy metody w aplikacji zarządzanej są wykonywane, jego MSIL jest kompilowany w kodzie natywnym za pomocą kompilacji just in time (JIT). Kompilacja JIT obejmuje proces weryfikacji, który stosuje wiele reguł bezpieczeństwa i niezawodności, które zapewniają, że kod nie:

  • Naruszenie kontraktów typu

  • Wprowadzanie przekroków buforu

  • Dziko uzyskiwać dostęp do pamięci.

Kod zarządzany, który nie jest zgodny z regułami weryfikacji, nie może być wykonywany, chyba że jest uważany za zaufany kod.

Zaletą weryfikowalnego kodu jest kluczowa przyczyna, dla którego platforma WPF jest oparta na programie .NET Framework. W zakresie, w jakim jest używany weryfikowalny kod, możliwość wykorzystania możliwych luk w zabezpieczeniach jest znacznie obniżona.

Zabezpieczenia dostępu kodu

Maszyna kliencka udostępnia szeroką gamę zasobów, do których aplikacja zarządzana może mieć dostęp, w tym do systemu plików, rejestru, usług drukowania, interfejsu użytkownika, odbicia i zmiennych środowiskowych. Aby aplikacja zarządzana mogła uzyskać dostęp do dowolnego zasobu na komputerze klienckim, musi mieć do tego uprawnienia programu .NET Framework. Uprawnienie w systemie CAS jest podklasą ; CodeAccessPermission Usługa CAS implementuje jedną podklasę dla każdego zasobu, do którego mogą uzyskiwać dostęp aplikacje zarządzane.

Zestaw uprawnień, które aplikacja zarządzana jest udzielana przez usługę CAS podczas uruchamiania wykonywania, jest znany jako zestaw uprawnień i jest określany przez dowody dostarczone przez aplikację. W przypadku aplikacji WPF dowody podane są lokalizacją lub strefą, z której są uruchamiane aplikacje. Cas identyfikuje następujące strefy:

  • Mój komputer. Aplikacje uruchamiane z komputera klienckiego (w pełni zaufane).

  • Lokalny intranet. Aplikacje uruchamiane z intranetu. (Nieco zaufane).

  • Internet. Aplikacje uruchamiane z Internetu. (Najmniej zaufany).

  • Zaufane witryny. Aplikacje zidentyfikowane przez użytkownika jako zaufane. (Najmniej zaufany).

  • Niezaufane witryny. Aplikacje zidentyfikowane przez użytkownika jako niezaufane. (Niezaufane).

Dla każdej z tych stref usługa CAS udostępnia wstępnie zdefiniowany zestaw uprawnień, który zawiera uprawnienia zgodne z poziomem zaufania skojarzonym z każdym z nich. Są to:

  • FullTrust. W przypadku aplikacji uruchomionych ze strefy Mój komputer . Wszystkie możliwe uprawnienia są przyznawane.

  • LocalIntranet. W przypadku aplikacji uruchamianych ze strefy Lokalny intranet . Podzestaw uprawnień jest udzielany w celu zapewnienia umiarkowanego dostępu do zasobów maszyny klienckiej, w tym izolowanego magazynu, nieograniczonego dostępu do interfejsu użytkownika, nieograniczonych okien dialogowych plików, ograniczonego odbicia, ograniczonego dostępu do zmiennych środowiskowych. Nie podano uprawnień do krytycznych zasobów, takich jak rejestr.

  • Internet. W przypadku aplikacji uruchamianych ze strefy Internet lub zaufane witryny . Podzestaw uprawnień jest udzielany w celu udzielenia ograniczonego dostępu do zasobów komputera klienckiego, w tym wydzielonego magazynu, otwierania pliku i ograniczonego interfejsu użytkownika. Zasadniczo ten zestaw uprawnień izoluje aplikacje od komputera klienckiego.

Aplikacje zidentyfikowane jako pochodzące ze strefy Niezaufane witryny nie mają żadnych uprawnień przez usługę CAS. W związku z tym wstępnie zdefiniowany zestaw uprawnień nie istnieje dla nich.

Na poniższej ilustracji przedstawiono relację między strefami, zestawami uprawnień, uprawnieniami i zasobami:

Diagram that shows CAS permission sets.

Ograniczenia piaskownicy zabezpieczeń strefy internetowej mają również zastosowanie do dowolnego kodu importowanych przez XBAP z biblioteki systemowej, w tym WPF. Gwarantuje to, że każdy fragment kodu jest zablokowany, nawet WPF. Niestety, aby można było wykonać, XBAP musi wykonywać funkcje, które wymagają większej liczby uprawnień niż te włączone przez piaskownicę zabezpieczeń strefy internetowej.

Ostrzeżenie

XBAPs wymagają obsługi starszych przeglądarek, takich jak Internet Explorer i Firefox. Te starsze wersje przeglądarki są zwykle nieobsługiwane w systemach Windows 10 i Windows 11. Nowoczesne przeglądarki nie obsługują już technologii wymaganej dla aplikacji XBAP ze względu na zagrożenia bezpieczeństwa. Wtyczki obsługujące XBAPs nie są już obsługiwane.

Rozważmy aplikację XBAP zawierającą następującą stronę:

FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();
Dim fp As New FileIOPermission(PermissionState.Unrestricted)
fp.Assert()

' Perform operation that uses the assert

' Revert the assert when operation is completed
CodeAccessPermission.RevertAssert()

Aby wykonać ten kod XBAP, podstawowy kod WPF musi wykonywać więcej funkcji niż jest dostępny dla wywoływania XBAP, w tym:

  • Tworzenie uchwytu okna (HWND) na potrzeby renderowania

  • Wysyłanie komunikatów

  • Ładowanie czcionki Tahoma

Z punktu widzenia zabezpieczeń zezwolenie na bezpośredni dostęp do dowolnej z tych operacji z aplikacji w trybie piaskownicy byłoby katastrofalne.

Na szczęście platforma WPF zaspokaja tę sytuację, zezwalając tym operacjom na wykonywanie z podwyższonym poziomem uprawnień w imieniu aplikacji w trybie piaskownicy. Podczas gdy wszystkie operacje WPF są sprawdzane względem ograniczonych uprawnień zabezpieczeń strefy internetowej domeny aplikacji XBAP, WPF (podobnie jak w przypadku innych bibliotek systemowych) otrzymuje zestaw uprawnień, który zawiera wszystkie możliwe uprawnienia.

Wymaga to, aby WPF otrzymał podwyższony poziom uprawnień, jednocześnie uniemożliwiając tym uprawnieniem podleganie przez zestaw uprawnień strefy internetowej domeny aplikacji hosta.

WPF wykonuje to przy użyciu metody Assert uprawnienia. Poniższy kod pokazuje, jak to się stanie.

FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();
Dim fp As New FileIOPermission(PermissionState.Unrestricted)
fp.Assert()

' Perform operation that uses the assert

' Revert the assert when operation is completed
CodeAccessPermission.RevertAssert()

Potwierdzenie zasadniczo uniemożliwia nieograniczone uprawnienia wymagane przez WPF przez uprawnienia strefy internetowej XBAP.

Z punktu widzenia platformy platforma WPF jest odpowiedzialna za prawidłowe używanie asercji ; nieprawidłowe użycie asercji może umożliwić złośliwemu kodowi podniesienie uprawnień. W związku z tym ważne jest, aby wywołać funkcję Assert tylko w razie potrzeby i zapewnić, że ograniczenia piaskownicy pozostaną nienaruszone. Na przykład kod w trybie piaskownicy nie może otwierać losowych plików, ale może używać czcionek. Platforma WPF umożliwia aplikacjom w trybie piaskownicy korzystanie z funkcji czcionek przez wywołanie funkcji Assert, a w przypadku WPF odczytywanie plików znanych z tych czcionek w imieniu aplikacji w trybie piaskownicy.

Wdrażanie technologii ClickOnce

ClickOnce to kompleksowa technologia wdrażania, która jest dołączona do programu .NET Framework i integruje się z programem Visual Studio (zobacz Zabezpieczenia i wdrażanie Technologii ClickOnce, aby uzyskać szczegółowe informacje). Autonomiczne aplikacje WPF można wdrażać przy użyciu technologii ClickOnce, natomiast aplikacje hostowane w przeglądarce muszą być wdrażane za pomocą technologii ClickOnce.

Aplikacje wdrożone przy użyciu technologii ClickOnce otrzymują dodatkową warstwę zabezpieczeń za pośrednictwem zabezpieczeń dostępu kodu (CAS); Zasadniczo wdrożone aplikacje ClickOnce żądają wymaganych uprawnień. Są one przyznawane tylko wtedy, gdy nie przekraczają zestawu uprawnień dla strefy, z której jest wdrażana aplikacja. Zmniejszając zestaw uprawnień tylko do tych, które są potrzebne, nawet jeśli są one mniejsze niż te podane przez zestaw uprawnień strefy uruchamiania, liczba zasobów, do których aplikacja ma dostęp, jest ograniczona do minimum. W związku z tym, jeśli aplikacja zostanie porwana, ryzyko uszkodzenia maszyny klienckiej zostanie zmniejszone.

Metodologia krytycznego dla zabezpieczeń

Kod WPF, który używa uprawnień do włączania piaskownicy strefy internetowej dla aplikacji XBAP, musi być przechowywany do najwyższego możliwego stopnia inspekcji i kontroli zabezpieczeń. Aby ułatwić to wymaganie, platforma .NET Framework zapewnia nową obsługę zarządzania kodem, który podnosi poziom uprawnień. W szczególności clR umożliwia identyfikację kodu, który podnosi poziom uprawnień i oznacza go za SecurityCriticalAttributepomocą ; każdy kod, który nie jest oznaczonySecurityCriticalAttribute, staje się przezroczysty przy użyciu tej metodologii. Z drugiej strony kod zarządzany, który nie jest oznaczony za pomocą SecurityCriticalAttribute , nie może wywyżać uprawnień.

Ostrzeżenie

XBAPs wymagają obsługi starszych przeglądarek, takich jak Internet Explorer i Firefox. Te starsze wersje przeglądarki są zwykle nieobsługiwane w systemach Windows 10 i Windows 11. Nowoczesne przeglądarki nie obsługują już technologii wymaganej dla aplikacji XBAP ze względu na zagrożenia bezpieczeństwa. Wtyczki obsługujące XBAPs nie są już obsługiwane.

Metodologia zabezpieczeń krytycznych umożliwia organizacji kodu WPF, który podnosi poziom uprawnień do jądra o znaczeniu krytycznym dla zabezpieczeń, a reszta jest przezroczysta. Izolowanie kodu krytycznego dla zabezpieczeń umożliwia zespołowi inżynierów WPF skupienie się na dodatkowej analizie zabezpieczeń i kontroli źródła nad jądrem krytycznym dla zabezpieczeń powyżej i poza standardowymi praktykami zabezpieczeń (zobacz Strategia zabezpieczeń WPF — Inżynieria zabezpieczeń).

Należy pamiętać, że program .NET Framework zezwala na rozszerzenie piaskownicy strefy internetowej XBAP, umożliwiając deweloperom pisanie zarządzanych zestawów oznaczonych za AllowPartiallyTrustedCallersAttribute pomocą (APTCA) i wdrożonych w globalnej pamięci podręcznej zestawów użytkownika (GAC). Oznaczanie zestawu za pomocą aptCA jest wysoce wrażliwą operacją zabezpieczeń, ponieważ umożliwia wywoływanie tego zestawu przez dowolny kod, w tym złośliwego kodu z Internetu. Skrajna ostrożność i najlepsze rozwiązania należy stosować podczas wykonywania tej czynności, a użytkownicy muszą zdecydować się ufać temu oprogramowaniu, aby można je było zainstalować.

Zabezpieczenia programu Microsoft Internet Explorer

Poza ograniczeniem problemów z zabezpieczeniami i uproszczeniem konfiguracji zabezpieczeń, program Microsoft Internet Explorer 6 (SP2) zawiera kilka funkcji zwiększających bezpieczeństwo użytkowników aplikacji przeglądarki XAML (XBAPs). Ciąg tych funkcji próbuje umożliwić użytkownikom większą kontrolę nad środowiskiem przeglądania.

Ostrzeżenie

XBAPs wymagają obsługi starszych przeglądarek, takich jak Internet Explorer i Firefox. Te starsze wersje przeglądarki są zwykle nieobsługiwane w systemach Windows 10 i Windows 11. Nowoczesne przeglądarki nie obsługują już technologii wymaganej dla aplikacji XBAP ze względu na zagrożenia bezpieczeństwa. Wtyczki obsługujące XBAPs nie są już obsługiwane.

Przed wersją IE6 SP2 użytkownicy mogą podlegać dowolnemu z następujących elementów:

  • Losowe okna podręczne.

  • Mylące przekierowanie skryptu.

  • Wiele okien dialogowych zabezpieczeń w niektórych witrynach sieci Web.

W niektórych przypadkach niezaufane witryny sieci Web spróbują oszukać użytkowników, fałszując interfejs użytkownika instalacji lub wielokrotnie wyświetlając okno dialogowe instalacji Microsoft ActiveX, mimo że użytkownik mógł go anulować. Korzystając z tych technik, istnieje możliwość, że znaczna liczba użytkowników została oszukana do podejmowania złych decyzji, które doprowadziły do instalacji aplikacji szpiegujących.

Program IE6 z dodatkiem SP2 zawiera kilka funkcji umożliwiających rozwiązanie tego typu problemów, które koncentrują się wokół koncepcji inicjowania użytkownika. Program IE6 SP2 wykrywa, kiedy użytkownik kliknął link lub element strony przed akcją, która jest znana jako inicjowanie użytkownika, i traktuje ją inaczej niż wtedy, gdy podobna akcja jest wyzwalana przez skrypt na stronie. Na przykład program IE6 SP2 zawiera blokowanie wyskakujących okienek, które wykrywa, gdy użytkownik kliknie przycisk przed utworzeniem wyskakującego okienka. Dzięki temu program IE6 SP2 może zezwalać na najbardziej nieszkodliwe wyskakujące okienka, zapobiegając wyskakującym okienkom, których użytkownicy nie pytają ani nie chcą. Zablokowane wyskakujące okienka są uwięzione na nowym pasku informacji, co umożliwia użytkownikowi ręczne zastąpienie bloku i wyświetlenie wyskakującego okienka.

Ta sama logika inicjowania użytkownika jest również stosowana do monitów dotyczących zabezpieczeń Otwórz/zapisywanie. Okna dialogowe instalacji ActiveX są zawsze uwięzione na pasku informacji, chyba że reprezentują uaktualnienie z wcześniej zainstalowanej kontrolki. Te środki łączą się, aby zapewnić użytkownikom bezpieczniejsze, bardziej kontrolowane środowisko użytkownika, ponieważ są one chronione przed witrynami, które nękają ich w celu zainstalowania niechcianego lub złośliwego oprogramowania.

Te funkcje chronią również klientów korzystających z programu IE6 SP2 w celu przeglądania witryn internetowych, które pozwalają im pobierać i instalować aplikacje WPF. W szczególności jest to spowodowane tym, że IE6 SP2 oferuje lepsze środowisko użytkownika, które zmniejsza prawdopodobieństwo zainstalowania złośliwych lub zdruzgotanych aplikacji niezależnie od technologii, która została użyta do jej skompilowania, w tym WPF. WPF dodaje te zabezpieczenia przy użyciu technologii ClickOnce w celu ułatwienia pobierania aplikacji przez Internet. Ponieważ aplikacje przeglądarki XAML (XBAPs) są wykonywane w piaskownicy zabezpieczeń strefy internetowej, można je bezproblemowo uruchomić. Z drugiej strony autonomiczne aplikacje WPF wymagają pełnego zaufania do wykonania. W przypadku tych aplikacji funkcja ClickOnce wyświetli okno dialogowe zabezpieczeń podczas procesu uruchamiania w celu powiadomienia o użyciu dodatkowych wymagań dotyczących zabezpieczeń aplikacji. Jednak musi to być inicjowane przez użytkownika, będzie również zarządzane przez logikę inicjowaną przez użytkownika i można je anulować.

Program Internet Explorer 7 zawiera i rozszerza możliwości zabezpieczeń programu IE6 SP2 w ramach ciągłego zaangażowania w zabezpieczenia.

Zobacz też