Udostępnij za pośrednictwem


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 przedstawiający model zabezpieczeń WPF.

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 z dodatkiem 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. Osiąga się to za pomocą parametru /GS z kompilatorem wiersza polecenia C/C++. Mimo że przepełnienia buforu należy wyraźnie unikać, kompilacja /GS zapewnia przykład obrony w głąb przed potencjalnymi lukami w zabezpieczeniach, które są przypadkowo lub złośliwie tworzone przez przepełnienia buforu.

W przeszłości przepełnienia buforu były przyczyną wielu poważnych luk w zabezpieczeniach. 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.

Ogólnie rzecz biorąc, flaga kompilatora -GS chroni przed pewnymi potencjalnymi przepełnieniami bufora przez wstrzyknięcie specjalnego ciasteczka zabezpieczeń w celu ochrony adresu zwrotnego funkcji, która ma lokalne bufory ciągów znakó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 (Kontrola bezpieczeństwa bufora).

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, takich jak "Least-Privilege User Access", kontrole integralności kodu i izolacja uprawnień.

Kontrola konta użytkownika (UAC)

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 UAC, a tylko aplikacje, które wymagają uprawnień administratora, będą uruchamiane z tymi uprawnieniami, nawet jeśli użytkownik jest administratorem. 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 Konta Użytkownika, Kontrola Konta Użytkownika wirtualizuje C:\Program Files, aby aplikacje, które uważają, że zapisują tam dane, faktycznie zapisywały się w alternatywnej lokalizacji dla poszczególnych użytkowników. Taka praca nad zgodnością umożliwia systemowi operacyjnemu uruchamianie wielu aplikacji, które wcześniej nie mogły działać w UAC.

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.

Procedura ograniczonego nadawania praw dla aplikacji Browser-Hosted

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 stare wersje przeglądarki Firefox. Te starsze 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. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące aplikacji hostowanych w przeglądarce WPF (XBAP).

Ponieważ aplikacje przeglądarki XAML (XBAPs) są zwykle umieszczone w środowisku piaskownicy przez zestaw uprawnień strefy Internet, usunięcie tych uprawnień nie wpływa na zgodność aplikacji przeglądarki XAML (XBAPs). 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 Using a Least-Privileged User Account (Korzystanie z konta użytkownika Least-Privileged).

Zabezpieczenia środowiska uruchomieniowego dla języków wspólnych

Środowisko uruchomieniowe języka wspólnego (CLR) oferuje szereg kluczowych korzyści związanych z zabezpieczeniami, które obejmują walidację i weryfikację, zabezpieczenia dostępu do kodu (CAS) oraz metodologię elementów krytycznych dla 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 PE pod kątem adresów wskazujących poza zestaw. Walidacja środowiska CLR weryfikuje również integralność metadanych osadzonych w zestawie.

Aby zapewnić bezpieczeństwo typów, co pomaga zapobiegać typowym problemom z zabezpieczeniami (np. przepełnienia bufora) oraz umożliwić działanie w środowisku piaskownicy poprzez izolację podprocesów, 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

  • Chaotycznie 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 otrzymuje od CAS podczas uruchomienia, jest określany na podstawie dowodów dostarczonych przez aplikację. W przypadku aplikacji WPF dowodem jest lokalizacja lub strefa, z której aplikacje są uruchamiane. 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).

  • Zaufanych witryn. 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. Należą do nich:

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

  • LocalIntranet. W przypadku aplikacji uruchomionych ze strefy lokalnego intranetu . Podzbiór uprawnień jest udzielany w celu zapewnienia umiarkowanego dostępu do zasobów maszyny klienckiej, w tym do izolowanego magazynu, nieograniczonego dostępu do interfejsu użytkownika, nieograniczonych okien dialogowych plików, ograniczonej refleksji oraz 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 Zaufanych witryn. Nadawany jest podzestaw uprawnień w celu uzyskania ograniczonego dostępu do zasobów komputera klienckiego, w tym wydzielonego magazynu, otwierania wyłącznie plików i ograniczonego interfejsu użytkownika. Zasadniczo ten zestaw uprawnień izoluje aplikacje od komputera klienckiego.

Aplikacje zidentyfikowane jako pochodzące ze strefy Niezaufanych Witryn nie mają żadnych uprawnień przez 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 przedstawiający zestawy uprawnień CAS.

Ograniczenia piaskownicy zabezpieczeń strefy internetowej dotyczą równie każdego kodu, który XBAP importuje z biblioteki systemowej, w tym także 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 stare wersje przeglądarki Firefox. Te starsze 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. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące aplikacji hostowanych w przeglądarce WPF (XBAP).

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 zajmuje się tą sytuacją, zezwalając tym operacjom na wykonywanie z podwyższonymi uprawnieniami w imieniu aplikacji uruchamianej 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 uprawnienia Assert. 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()

Polecenie zasadniczo zapobiega ograniczeniu nieograniczonych uprawnień wymaganych przez WPF przez uprawnienia strefy internetowej XBAP.

Z perspektywy platformy platforma WPF jest odpowiedzialna za prawidłowe używanie Assert; nieprawidłowe użycie Assert może umożliwić złośliwemu kodowi podniesienie uprawnień. W konsekwencji ważne jest, aby wywoływać Assert tylko wtedy, gdy jest to konieczne, oraz upewnić się, że ograniczenia piaskownicy pozostają nienaruszone. Na przykład kod sandboxowy nie może otwierać dowolnych plików, ale może używać czcionek. Platforma WPF umożliwia aplikacjom działającym w trybie piaskownicy korzystanie z funkcji fontów poprzez wywołanie Assert, a także, w imieniu tych aplikacji, odczytywanie plików, które zawierają te fonty.

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 zabezpieczeń i wdrażania 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 Security-Critical

Kod WPF, który używa uprawnień do włączania piaskownicy strefy internetowej dla aplikacji XBAP, musi podlegać audytom i kontrolom bezpieczeństwa z najwyższą możliwą starannością. 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 uprawnienia, i oznacza go za pomocą SecurityCriticalAttribute; każdy kod, który nie został oznaczony SecurityCriticalAttribute, staje się przezroczysty przy użyciu tej metodologii. Z drugiej strony kod zarządzany, który nie jest oznaczony SecurityCriticalAttribute, nie może podnosić poziomu uprawnień.

Ostrzeżenie

XBAPs wymagają obsługi starszych przeglądarek, takich jak Internet Explorer i stare wersje przeglądarki Firefox. Te starsze 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. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące aplikacji hostowanych w przeglądarce WPF (XBAP).

Metodologia Security-Critical umożliwia organizowanie kodu WPF, który podnosi poziom uprawnień do jądra krytycznego dla zabezpieczeń, a reszta jest przezroczysta. Izolowanie kodu krytycznego dla zabezpieczeń umożliwia zespołowi inżynierów WPF skoncentrowanie dodatkowej analizy i kontroli wersji na jądrze krytycznym dla zabezpieczeń, wykraczając poza standardowe praktyki (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 assembly oznaczonych AllowPartiallyTrustedCallersAttribute (APTCA) i wdrożonych w Global Assembly Cache (GAC) użytkownika. Oznaczanie zestawu za pomocą APTCA jest wysoce wrażliwą operacją bezpieczeństwa, ponieważ umożliwia wywoływanie tego zestawu przez dowolny kod, w tym złośliwy kod pochodzący 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 stare wersje przeglądarki Firefox. Te starsze 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. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące aplikacji hostowanych w przeglądarce WPF (XBAP).

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. IE6 SP2 wykrywa, kiedy użytkownik kliknął link lub element strony przed akcją, co jest znane jako inicjacja użytkownika, a traktuje tę akcję inaczej niż wtedy, gdy podobna akcja jest wyzwalana przez skrypt na stronie. Na przykład program IE6 SP2 zawiera Pop-Up Blocker, który wykrywa, kiedy 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 pod nowym paskiem informacji , co umożliwia użytkownikowi ręczne obejście blokady i wyświetlenie wyskakującego okienka.

Logika inicjowania użytkownika jest również stosowana do monitów zabezpieczeń, takich jak Otwórz/i Zapisz. Okna dialogowe instalacji ActiveX są zawsze zablokowane na Pasku Informacji, chyba że stanowią uaktualnienie wcześniej zainstalowanego elementu sterującego. 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ż