WPF Güvenlik Stratejisi - Platform Güvenliği
Windows Presentation Foundation (WPF) çeşitli güvenlik hizmetleri sağlarken, işletim sistemi, CLR ve Internet Explorer'ı içeren temel platformun güvenlik özelliklerinden de yararlanıyor. Bu katmanlar, WPF'ye aşağıdaki şekilde gösterildiği gibi tek bir hata noktasından kaçınmaya çalışan güçlü ve derinlemesine bir güvenlik modeli sağlamak için birleştirilir:
Bu konunun geri kalanında, özellikle WPF ile ilgili olan bu katmanların her birinde yer alan özellikler ele alınmaktadır.
İşletim Sistemi Güvenliği
Windows'un çekirdeği, WPF ile oluşturulanlar da dahil olmak üzere tüm Windows uygulamaları için güvenlik temelini oluşturan çeşitli güvenlik özellikleri sağlar. Bu konu başlığında WPF için önemli olan bu güvenlik özelliklerinin kapsamı ve DAHA ayrıntılı savunma sağlamak için WPF'nin bunlarla nasıl tümleştirdiği açıklanır.
Microsoft Windows XP Service Pack 2 (SP2)
Windows'un genel incelemesine ve güçlendirilmesine ek olarak, Windows XP SP2'nin bu konuda ele alacaktır üç temel özelliği vardır:
/GS derlemesi
Microsoft Windows Update.
/GS Derlemesi
Windows XP SP2, arabellek taşmalarını azaltmaya yardımcı olmak için CLR gibi tüm WPF bağımlılıkları dahil olmak üzere birçok temel sistem kitaplığını yeniden derleyerek koruma sağlar. Bu, C/C++ komut satırı derleyicisi ile /GS parametresi kullanılarak elde edilir. Arabellek taşmalarından açıkça kaçınılması gerekir ancak /GS derlemesi, yanlışlıkla veya kötü amaçlı olarak oluşturulan olası güvenlik açıklarına karşı derinlemesine savunma örneği sağlar.
Geçmişte arabellek taşması, birçok yüksek etkili güvenlik açıklarının nedeni olmuştur. Arabellek taşması, bir saldırganın arabelleğin sınırlarını aşan kötü amaçlı kod eklenmesine izin veren bir kod güvenlik açığından yararlandığında oluşur. Bu, saldırganın kodun yürütülmesine neden olmak için bir işlevin dönüş adresinin üzerine yazarak kodun yürütülmekte olduğu işlemi ele geçirmesine olanak tanır. Sonuç, ele geçirilen işlemle aynı ayrıcalıklara sahip rastgele kod yürüten kötü amaçlı koddur.
-GS derleyici bayrağı, yerel dize arabellekleri olan bir işlevin dönüş adresini korumak için özel bir güvenlik tanımlama bilgisi ekleyerek bazı olası arabellek taşmalarına karşı koruma sağlar. bir işlev döndürdüğünde, güvenlik tanımlama bilgisi önceki değeriyle karşılaştırılır. Değer değiştiyse, arabellek taşması olmuş olabilir ve işlem bir hata koşuluyla durdurulur. İşlemin durdurulması, kötü amaçlı olabilecek kodun yürütülmesini engeller. Daha fazla ayrıntı için -GS (Arabellek Güvenlik Denetimi) bölümüne bakın.
WPF, WPF uygulamalarına başka bir savunma katmanı eklemek için /GS bayrağıyla derlenir.
Windows Vista
Windows Vista'da WPF kullanıcıları işletim sisteminin "En Az Ayrıcalıklı Kullanıcı Erişimi", kod bütünlüğü denetimleri ve ayrıcalık yalıtımı gibi ek güvenlik geliştirmelerinden yararlanacaktır.
Kullanıcı Hesabı Denetimi (UAC)
Bugün, birçok uygulama yükleme veya yürütme ya da her ikisi için gerekli olduğundan Windows kullanıcıları yönetici ayrıcalıklarıyla çalışmaya eğilimlidir. Varsayılan uygulama ayarlarını Kayıt Defteri'ne yazabilmek örneklerden biridir.
Yönetici ayrıcalıklarıyla çalışmak, uygulamaların yönetici ayrıcalıkları verilen işlemlerden yürütülmesi anlamına gelir. Bunun güvenlik etkisi, yönetici ayrıcalıklarıyla çalışan bir işlemi ele geçiren tüm kötü amaçlı kodların kritik sistem kaynaklarına erişim de dahil olmak üzere bu ayrıcalıkları otomatik olarak devralacak olmasıdır.
Bu güvenlik tehdidine karşı korumanın bir yolu, gerekli ayrıcalıkları en az olan uygulamaları çalıştırmaktır. Bu, en az ayrıcalık ilkesi olarak bilinir ve Windows işletim sisteminin temel bir özelliğidir. Bu özellik Kullanıcı Hesabı Denetimi (UAC) olarak adlandırılır ve Windows UAC tarafından iki temel yolla kullanılır:
Kullanıcı yönetici olsa bile çoğu uygulamayı varsayılan olarak UAC ayrıcalıklarıyla çalıştırmak için; yalnızca yönetici ayrıcalıklarına ihtiyaç duyan uygulamalar yönetici ayrıcalıklarıyla çalışır. Yönetim ayrıcalıklarıyla çalışmak için, uygulamaların uygulama bildirimlerinde veya güvenlik ilkesinde bir girdi olarak açıkça işaretlenmesi gerekir.
Sanallaştırma gibi uyumluluk çözümleri sağlamak için. Örneğin, birçok uygulama C:\Program Files gibi kısıtlanmış konumlara yazmaya çalışır. UAC altında yürütülen uygulamalar için, yazmak için yönetici ayrıcalıkları gerektirmeyen bir kullanıcı başına alternatif konum vardır. UAC altında çalışan uygulamalar için UAC, C:\Program Files'ı sanallaştırır, böylece yazdıklarını düşünen uygulamalar aslında alternatif kullanıcı başına konuma yazar. Bu tür bir uyumluluk çalışması, işletim sisteminin daha önce UAC'de çalıştıramayan birçok uygulamayı çalıştırmasını sağlar.
Kod Bütünlüğü Denetimleri
Windows Vista, kötü amaçlı kodun yükleme/çalışma zamanında sistem dosyalarına veya çekirdeğine eklenmesini önlemeye yardımcı olmak için daha derin kod bütünlüğü denetimleri içerir. Bu, sistem dosya korumasını aşıyor.
Tarayıcıda Barındırılan Uygulamalar için Sınırlı Hak İşlemi
Tarayıcıda barındırılan WPF uygulamaları İnternet bölgesi korumalı alanı içinde yürütülür. Microsoft Internet Explorer ile WPF tümleştirmesi bu korumayı ek destekle genişletir.
Uyarı
XBAP'ler, Internet Explorer ve Firefox'un eski sürümleri gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcılar genellikle Windows 10 ve Windows 11'de desteklenmez. Modern tarayıcılar artık güvenlik riskleri nedeniyle XBAP uygulamaları için gereken teknolojiyi desteklemiyor. XBAP'leri etkinleştiren eklentiler artık desteklenmemektedir. Daha fazla bilgi için bkz . WPF tarayıcı tarafından barındırılan uygulamalar (XBAP) hakkında sık sorulan sorular.
XAML tarayıcı uygulamaları (XBAP' ler) genellikle İnternet bölgesi izin kümesi tarafından korumalı olduğundan, bu ayrıcalıkların kaldırılması uyumluluk açısından XAML tarayıcı uygulamalarına (XBAP) zarar vermez. Bunun yerine ek bir derinlemesine savunma katmanı oluşturulur; Korumalı bir uygulama diğer katmanlardan yararlanabiliyorsa ve süreci ele geçirebiliyorsa, işlem yalnızca sınırlı ayrıcalıklara sahip olur.
Bkz. En Az Ayrıcalıklı Kullanıcı Hesabı Kullanma.
Ortak Dil Çalışma Zamanı Güvenliği
Ortak dil çalışma zamanı (CLR), doğrulama ve doğrulama, Kod Erişim Güvenliği (CAS) ve Güvenlik Açısından Kritik Metodolojisi gibi birçok önemli güvenlik avantajı sunar.
Doğrulama ve Doğrulama
Derleme yalıtımı ve bütünlüğü sağlamak için CLR bir doğrulama işlemi kullanır. CLR doğrulaması, derlemenin dışındaki adresler için Taşınabilir Yürütülebilir Dosya (PE) dosya biçimlerini doğrulayarak derlemelerin yalıtılmasını sağlar. CLR doğrulaması ayrıca bir derlemeye katıştırılmış meta verilerin bütünlüğünü de doğrular.
Tür güvenliğini sağlamak, yaygın güvenlik sorunlarını (örneğin arabellek taşmalarını) önlemeye yardımcı olmak ve alt işlem yalıtımı aracılığıyla korumalı alanı etkinleştirmek için CLR güvenliği doğrulama kavramını kullanır.
Yönetilen uygulamalar Microsoft Ara Dili'ne (MSIL) derlenir. Yönetilen bir uygulamadaki yöntemler yürütülürken, MSIL'i Tam Zamanında (JIT) derlemesi aracılığıyla yerel kodda derlenir. JIT derlemesi, kodun şunları gerçekleştirmemesini sağlayan birçok güvenlik ve sağlamlık kuralı uygulayan bir doğrulama işlemi içerir:
Tür sözleşmelerini ihlal
Arabellek taşmalarını tanıtma
Belleğe vahşice erişin.
Doğrulama kurallarına uymayan yönetilen kodun, güvenilir kod olarak kabul edilmediği sürece yürütülmesine izin verilmez.
Doğrulanabilir kodun avantajı, WPF'nin .NET Framework'te oluşturulmasının önemli bir nedenidir. Doğrulanabilir kodun kullanıldığı ölçüde olası güvenlik açıklarından yararlanma olasılığı büyük ölçüde azaltılır.
Kod Erişimi Güvenliği
İstemci makinesi, yönetilen bir uygulamanın erişebileceği dosya sistemi, Kayıt Defteri, yazdırma hizmetleri, kullanıcı arabirimi, yansıma ve ortam değişkenleri gibi çok çeşitli kaynakları kullanıma sunar. Yönetilen bir uygulamanın istemci makinedeki kaynaklardan herhangi birine erişebilmesi için önce .NET Framework iznine sahip olması gerekir. CAS'deki izin, alt sınıfıdır CodeAccessPermission; CAS, yönetilen uygulamaların erişebileceği her kaynak için bir alt sınıf uygular.
Yönetilen bir uygulamanın yürütülmeye başladığında CAS tarafından verildiği izin kümesi, izin kümesi olarak bilinir ve uygulama tarafından sağlanan kanıtlar tarafından belirlenir. WPF uygulamaları için sağlanan kanıt, uygulamaların başlatıldığı konum veya bölgedir. CAS aşağıdaki bölgeleri tanımlar:
Bilgisayarım. İstemci makinesinden başlatılan uygulamalar (Tam Güvenilir).
Yerel İntranet. İntranetten başlatılan uygulamalar. (Biraz Güvenilir).
İnternet. İnternet'ten başlatılan uygulamalar. (En Az Güvenilen).
Güvenilen Siteler. Bir kullanıcı tarafından güvenilen olarak tanımlanan uygulamalar. (En Az Güvenilen).
Güvenilmeyen Siteler. Bir kullanıcı tarafından güvenilmeyen olarak tanımlanan uygulamalar. (Güvenilmeyen).
Bu bölgelerin her biri için CAS, her biriyle ilişkili güven düzeyiyle eşleşen izinleri içeren önceden tanımlanmış bir izin kümesi sağlar. Bu modüller şunlardır:
FullTrust. Bilgisayarım bölgesinden başlatılan uygulamalar için. Tüm olası izinler verilir.
LocalIntranet. Yerel İntranet bölgesinden başlatılan uygulamalar için. Yalıtılmış depolama, kısıtlanmamış kullanıcı arabirimi erişimi, kısıtlanmamış dosya iletişim kutuları, sınırlı yansıma, ortam değişkenlerine sınırlı erişim gibi istemci makinesinin kaynaklarına orta düzeyde erişim sağlamak için izinlerin bir alt kümesi verilir. Kayıt Defteri gibi kritik kaynaklar için izinler sağlanmaz.
İnternet. İnternet'ten veya Güvenilen Siteler bölgesinden başlatılan uygulamalar için. yalıtılmış depolama, yalnızca açık dosya ve sınırlı kullanıcı arabirimi dahil olmak üzere istemci makinesinin kaynaklarına sınırlı erişim sağlamak için izinlerin bir alt kümesi verilir. Temelde, bu izin kümesi uygulamaları istemci makinesinden yalıtıyor.
Güvenilmeyen Siteler bölgesinden olduğu belirlenen uygulamalara CAS tarafından hiç izin verilmez. Sonuç olarak, bunlar için önceden tanımlanmış bir izin kümesi yoktur.
Aşağıdaki şekilde bölgeler, izin kümeleri, izinler ve kaynaklar arasındaki ilişki gösterilmektedir:
İnternet bölgesi güvenlik korumalı alanının kısıtlamaları, bir XBAP'in WPF de dahil olmak üzere sistem kitaplığından içeri aktarmış olduğu tüm kodlara eşit olarak uygulanır. Bu, wpf bile kodun her bitinin kilitlenmesini sağlar. Ne yazık ki, bir XBAP'nin yürütülebilmesi için İnternet bölgesi güvenlik korumalı alanı tarafından etkinleştirilenden daha fazla izin gerektiren işlevleri yürütmesi gerekir.
Uyarı
XBAP'ler, Internet Explorer ve Firefox'un eski sürümleri gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcılar genellikle Windows 10 ve Windows 11'de desteklenmez. Modern tarayıcılar artık güvenlik riskleri nedeniyle XBAP uygulamaları için gereken teknolojiyi desteklemiyor. XBAP'leri etkinleştiren eklentiler artık desteklenmemektedir. Daha fazla bilgi için bkz . WPF tarayıcı tarafından barındırılan uygulamalar (XBAP) hakkında sık sorulan sorular.
Aşağıdaki sayfayı içeren bir XBAP uygulaması düşünün:
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()
Bu XBAP'yi yürütmek için, temel alınan WPF kodunun çağrılan XBAP için sağlanandan daha fazla işlev yürütmesi gerekir; örneğin:
İşleme için pencere tutamacı (HWND) oluşturma
İletileri gönderme
Tahoma yazı tipini yükleme
Güvenlik açısından bakıldığında, korumalı uygulamadan bu işlemlerden herhangi birine doğrudan erişime izin vermek yıkıcı olabilir.
Neyse ki WPF, korumalı uygulama adına bu işlemlerin yükseltilmiş ayrıcalıklarla yürütülmesine izin vererek bu durumu karşılar. Tüm WPF işlemleri XBAP'nin uygulama etki alanının sınırlı İnternet bölgesi güvenlik izinlerine karşı denetlense de, WPF'ye (diğer sistem kitaplıklarında olduğu gibi) tüm olası izinleri içeren bir izin kümesi verilir.
Bu, WPF'nin yükseltilmiş ayrıcalıklar almasını ve bu ayrıcalıkların konak uygulama etki alanının İnternet bölgesi izin kümesi tarafından yönetilmesini engeller.
WPF bunu bir iznin Assert yöntemini kullanarak yapar. Aşağıdaki kod, bunun nasıl gerçekleştiğini gösterir.
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()
Assert temelde WPF için gereken sınırsız izinlerin XBAP'nin İnternet bölgesi izinleri tarafından kısıtlanmasını engeller.
Platform açısından bakıldığında WPF, Assert'ı doğru kullanmaktan sorumludur; Assert'ın yanlış kullanılması kötü amaçlı kodun ayrıcalıkları yükseltmesine olanak tanıyabilir. Sonuç olarak, yalnızca gerektiğinde Assert çağrısı yapmak ve korumalı alan kısıtlamalarının değişmediğinden emin olmak önemlidir. Örneğin, korumalı kodun rastgele dosyaları açmasına izin verilmez, ancak yazı tiplerini kullanmasına izin verilir. WPF korumalı uygulamaların Assert çağrısı yaparak yazı tipi işlevselliğini kullanmasını ve WPF'nin korumalı uygulama adına bu yazı tiplerini içerdiği bilinen dosyaları okumasını sağlar.
ClickOnce Dağıtımı
ClickOnce, .NET Framework ile birlikte gelen ve Visual Studio ile tümleşen kapsamlı bir dağıtım teknolojisidir (ayrıntılı bilgi için bkz . ClickOnce güvenliği ve dağıtımı ). Tek başına WPF uygulamaları ClickOnce kullanılarak dağıtılabilirken, tarayıcıda barındırılan uygulamaların ClickOnce ile dağıtılması gerekir.
ClickOnce kullanılarak dağıtılan uygulamalara Kod Erişim Güvenliği (CAS) üzerinden ek bir güvenlik katmanı verilir; temelde, ClickOnce dağıtılan uygulamalar ihtiyaç duydukları izinleri istemektedir. Bu izinlere yalnızca uygulamanın dağıtıldığı bölge için izin kümesini aşmamaları durumunda verilir. İzin kümesini yalnızca gerekli olan izinlere indirgeyerek, başlatma bölgesinin izin kümesi tarafından sağlanan kaynaklardan daha az olsalar bile, uygulamanın erişimi olan kaynak sayısı en aza indirilir. Sonuç olarak, uygulama ele geçirilirse istemci makineye zarar verme olasılığı azalır.
Güvenlik Açısından Kritik Metodoloji
XBAP uygulamaları için İnternet bölgesi korumalı alanını etkinleştirmek için izinleri kullanan WPF kodu, mümkün olan en yüksek düzeyde güvenlik denetimi ve denetiminde tutulmalıdır. Bu gereksinimi kolaylaştırmak için .NET Framework, ayrıcalığı yükselten kodu yönetmeye yönelik yeni destek sağlar. Özellikle, CLR ayrıcalığı yükselten kodu tanımlamanızı ve ile SecurityCriticalAttributeişaretlemenizi sağlar; ile SecurityCriticalAttribute işaretlenmemiş tüm kodlar bu metodolojiyi kullanarak saydam hale gelir. Buna karşılık, ile SecurityCriticalAttribute işaretlenmemiş yönetilen kodun yükseltme ayrıcalığı engellenir.
Uyarı
XBAP'ler, Internet Explorer ve Firefox'un eski sürümleri gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcılar genellikle Windows 10 ve Windows 11'de desteklenmez. Modern tarayıcılar artık güvenlik riskleri nedeniyle XBAP uygulamaları için gereken teknolojiyi desteklemiyor. XBAP'leri etkinleştiren eklentiler artık desteklenmemektedir. Daha fazla bilgi için bkz . WPF tarayıcı tarafından barındırılan uygulamalar (XBAP) hakkında sık sorulan sorular.
Güvenlik Açısından Kritik Metodolojisi, ayrıcalığı güvenlik açısından kritik çekirdekte yükselten WPF kodunun düzenlenmesine ve kalanların saydam olmasına olanak tanır. Güvenlik açısından kritik kodu yalıtma, WPF mühendislik ekibinin standart güvenlik uygulamalarının üzerinde ve ötesinde güvenlik açısından kritik çekirdek üzerinde ek bir güvenlik analizi ve kaynak denetimine odaklanmasını sağlar (bkz. WPF Güvenlik Stratejisi - Güvenlik Mühendisliği).
.NET Framework'ün, geliştiricilerin (APTCA) ile AllowPartiallyTrustedCallersAttribute işaretlenmiş ve kullanıcının Genel Derleme Önbelleğine (GAC) dağıtılan yönetilen derlemeler yazmasına izin vererek XBAP İnternet bölgesi korumalı alanını genişletmesine izin veren güvenilen kodlara izin verdiğine dikkat edin. Bir derlemeyi APTCA ile işaretlemek, herhangi bir kodun İnternet'ten gelen kötü amaçlı kod da dahil olmak üzere bu derlemeyi çağırmasına izin verdiği için son derece hassas bir güvenlik işlemidir. Bunu yaparken son derece dikkatli ve en iyi yöntemler kullanılmalıdır ve kullanıcıların yüklenmesi için bu yazılıma güvenmeyi seçmesi gerekir.
Microsoft Internet Explorer Güvenliği
Microsoft Internet Explorer 6 (SP2), güvenlik sorunlarını azaltmanın ve güvenlik yapılandırmasını basitleştirmenin ötesinde, XAML tarayıcı uygulamaları (XBAP) kullanıcıları için güvenliği geliştiren güvenlik iyileştirmeleri sağlayan çeşitli özellikler içerir. Bu özelliklerin itici gücü, kullanıcıların gözatma deneyimi üzerinde daha fazla denetim sahibi olmasını sağlar.
Uyarı
XBAP'ler, Internet Explorer ve Firefox'un eski sürümleri gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcılar genellikle Windows 10 ve Windows 11'de desteklenmez. Modern tarayıcılar artık güvenlik riskleri nedeniyle XBAP uygulamaları için gereken teknolojiyi desteklemiyor. XBAP'leri etkinleştiren eklentiler artık desteklenmemektedir. Daha fazla bilgi için bkz . WPF tarayıcı tarafından barındırılan uygulamalar (XBAP) hakkında sık sorulan sorular.
IE6 SP2'ye başlamadan önce kullanıcılar aşağıdakilerden herhangi birine tabi olabilir:
Rastgele açılan pencereler.
Betik yeniden yönlendirmesi kafa karıştırıcı.
Bazı Web sitelerinde çok sayıda güvenlik iletişim kutusu.
Bazı durumlarda, güvenilir olmayan Web siteleri, kullanıcı tarafından iptal edilmiş olsa bile, yükleme kullanıcı arabirimini (UI) yanıltarak veya bir Microsoft ActiveX yükleme iletişim kutusunu tekrar tekrar göstererek kullanıcıları kandırmaya çalışır. Bu teknikleri kullanarak, casus yazılım uygulamalarının yüklenmesiyle sonuçlanan kötü kararlar alma konusunda önemli sayıda kullanıcı kandırılmış olabilir.
IE6 SP2, bu tür sorunları azaltmak için kullanıcı başlatma kavramını kapsayan çeşitli özellikler içerir. IE6 SP2, kullanıcı başlatma olarak bilinen bir eylemden önce kullanıcının bir bağlantıya veya sayfa öğesine ne zaman tıkladığını algılar ve bunun yerine bir sayfadaki betik tarafından tetiklenen benzer bir eylemden farklı davranır. Örnek olarak, IE6 SP2 bir açılır pencere oluşturmadan önce kullanıcının bir düğmeye tıkladığını algılayan bir Açılır Pencere Engelleyicisi içerir. Bu, IE6 SP2'nin çoğu zararsız açılır pencereye izin vermesini sağlarken, kullanıcıların ne istediği ne de istediği açılır pencereleri engeller. Engellenen açılır pencereler, kullanıcının bloğu el ile geçersiz kılmasını ve açılır pencere görüntülemesini sağlayan yeni Bilgi Çubuğu'nun altında kısılır.
Aynı kullanıcı başlatma mantığı, Kaydetmeyi Aç/güvenlik istemlerine de uygulanır. ActiveX yükleme iletişim kutuları, önceden yüklenmiş bir denetimden yükseltmeyi temsil etmediği sürece her zaman Bilgi Çubuğu'na yakalanırlar. Bu ölçüler, kullanıcılar istenmeyen veya kötü amaçlı yazılım yüklemelerini sağlayan sitelere karşı korunduğundan kullanıcılara daha güvenli, daha denetimli bir kullanıcı deneyimi sunmak için bir araya gelir.
Bu özellikler, WPF uygulamalarını indirip yüklemelerine olanak sağlayan web sitelerine göz atmak için IE6 SP2 kullanan müşterileri de korur. Bunun nedeni, özellikle IE6 SP2'nin WPF de dahil olmak üzere derlemek için kullanılan teknolojiden bağımsız olarak kullanıcıların kötü amaçlı veya sinsi uygulamalar yükleme şansını azaltan daha iyi bir kullanıcı deneyimi sunmuş olmasıdır. WPF, uygulamalarının İnternet üzerinden indirilmesini kolaylaştırmak için ClickOnce kullanarak bu korumalara ekler. XAML tarayıcı uygulamaları (XBAP' ler) bir İnternet bölgesi güvenlik korumalı alanı içinde yürütürken sorunsuz bir şekilde başlatılabilir. Öte yandan, tek başına WPF uygulamalarının yürütülmesi için tam güven gerekir. Bu uygulamalar için ClickOnce, uygulamanın ek güvenlik gereksinimlerinin kullanımını bildirmek için başlatma işlemi sırasında bir güvenlik iletişim kutusu görüntüler. Ancak, bu kullanıcı tarafından başlatılmalıdır, kullanıcı tarafından başlatılan mantık tarafından da yönetilir ve iptal edilebilir.
Internet Explorer 7, IE6 SP2'nin güvenlik özelliklerini sürekli güvenlik taahhüdü kapsamında birleştirir ve genişletir.
Ayrıca bkz.
.NET Desktop feedback