Güvenlik (WPF)
Geliştirirken Windows Presentation Foundation (WPF) tek başına ve tarayıcı barındırılan uygulamalar gerekir düşünün güvenlik modeli. WPF tek başına çalışan uygulamaları yürütme ile Kısıtlanmamış izinleri (CAS FullTrust izin kümesi), XCopy, Windows Installer (.msi) kullanılarak dağıtılan olup olmadığını veya ClickOnce. Kısmi güven, ClickOnce ile tek başına wpf uygulamaları dağıtma desteklenmiyor. Ancak, tam güven ana bilgisayar uygulamasının bir kısmi güven oluşturabilirsiniz AppDomain kullanarak.net Framework eklenti modeli. For more information, see WPF Eklentilerine Genel Bakış.
WPFTarayıcı barındırılan uygulamalar tarafından barındırılan Windows Internet Explorer ya da Firefox, şunlardan biri olabilir ve XAML browser applications (XBAPs) veya gevşek Extensible Application Markup Language (XAML) belgeleri daha fazla bilgi için bkz: WPF XAML Tarayıcı Uygulamalarına Genel Bakış.
WPFTarayıcı barındırılan uygulamalar varsayılan olarak sınırlı olan varsayılan olarak, kısmi güven güvenlik sanal alanı içinde yürütme CAS Internet bölge izin kümesi. Bu verimli yalıtır WPF tipik Web uygulamalarının yalıtılmış olmasını beklediğiniz şekilde istemci bilgisayardan tarayıcı barındırılan uygulamalar. Ayrıcalıklar, tam güven, en çok dağıtım url ve istemcinin güvenlik yapılandırması güvenlik bölgesine bağlı bir xbap çıkarabilir. Daha fazla bilgi için bkz: WPF Kısmi Güven Güvenliği.
Bu konuda güvenlik modeli anlatılmaktadır Windows Presentation Foundation (WPF) tek başına ve tarayıcı barındırılan uygulamalar.
This topic contains the following sections:
Güvenli Gezinti
Web tarama yazılımı güvenlik ayarları
WebBrowser denetimi ve özellik denetimleri
aptca derlemeler kısmen güvenilen istemci uygulamaları için devre dışı bırakma
Sandbox davranış bağımsız xaml dosyaları
Güvenlik yükseltmek wpf uygulamaları geliştirmek için kaynaklar
Güvenli Gezinti
İçin XBAPs, WPF iki tür gezinti ayırır: Uygulama ve tarayıcı.
Uygulama gezinti olan bir tarayıcı tarafından barındırılan uygulama içinde içerik öğeleri arasında gezinme. Tarayıcı gezinmesini olan bir tarayıcıda içerik ve yerleşim URL'sini değiştiren gezinti. Uygulama gezinti (genellikle xaml) ve tarayıcı gezinti (genellikle html) arasındaki ilişki aşağıdaki şekilde gösterilmiştir:
İçin güvenli olarak kabul edilen içerik türünü bir XBAP gitmek için öncelikle uygulama gezinti veya tarayıcı kullanılıp kullanılmadığını göre belirlenir.
Uygulama gezinme güvenliği
Olarak uygulama gezinti kabul edilir bir paketi ile belirlenebilir, güvenli URI, dört içerik türlerini destekler:
İçerik türü |
Description |
URI Example |
---|---|---|
Resource |
Bir yapý türü bir projeye eklenen dosyaları kaynak. |
pack://application:,,,/MyResourceFile.xaml |
Content |
Bir yapý türü bir projeye eklenen dosyaları İçerik. |
pack://application:,,,/MyContentFile.xaml |
Kaynak sitesi |
Bir yapý türü bir projeye eklenen dosyaları yok. |
pack://siteoforigin:,,,/MySiteOfOriginFile.xaml |
Uygulama kodu |
Bir derlenmiş kod arkada olan xaml kaynakları. -or- Bir yapý türü bir projeye eklenen xaml dosyaları sayfa. |
pack://application:,,,/MyResourceFile.xaml |
Not |
---|
Uygulama veri dosyalarını ve paketi hakkında daha fazla bilgi için URIsbakın WPF Uygulama Kaynağı, İçerik, ve Veri Dosyaları. |
Dosyaları bu içerik türleri için ya da kullanıcı veya program aracılığıyla gezinilebilir:
Kullanıcı gezinti. Tıklatarak kullanıcı gider bir Hyperlink öğesi.
Programlı gezinti. Uygulama ayarlayarak, kullanıcıyla ilgili olmadan gider NavigationWindow.Source özelliği.
Tarayıcı gezinme güvenliği
Tarayıcı gezinmesini yalnızca aşağıdaki koşullar altında güvenli olarak kabul edilir:
Kullanıcı gezinti. Tıklatarak kullanıcı gider bir Hyperlink öğesi ana içinde olduğunu NavigationWindow, değil de bir iç içe Frame.
Bölge. Internet veya yerel intranet için gidilen içeriği bulunur.
Protocol. Kullanılan protokolü olması http, https, Dosya, veya mailto.
Yoksa bir XBAP Bu koşullar ile uygun olmayan bir şekilde içeriğe ulaşmak çalışır bir SecurityException atılır.
Web tarama yazılımı güvenlik ayarları
Bilgisayarınızdaki güvenlik ayarları tüm Web yazılım tarama verilen erişim belirler. Web yazılım taraması içeren herhangi bir uygulamayı veya bileşeni kullanan WinINet veya UrlMon API'leri, Internet Explorer ve PresentationHost.exe gibi.
Internet Explorerbir mekanizma olarak yapılandırabileceğiniz göre ya da yürütülecek izin işlevselliği sağlar Internet Explorer, aşağıdaki gibi:
.NET Framework-bağımlı bileşenler
ActiveX denetimleri ve eklentileri
Downloads
Scripting
Kullanıcı kimlik doğrulaması
Bu yolla güvenli işlevselliği koleksiyonu için her bölge için ayrı ayrı yapılandırılır Internet, Intranet, Güvenilen siteler, ve Yasak siteler bölgeler. Aşağıdaki adımlarda bilgisayarınızın güvenlik ayarlarının nasıl yapılandırılacağı açıklanmaktadır:
Open Control Panel.
Tıklatın Ağ ve Internet ve i Internet Seçenekleri.
Internet Seçenekleri iletişim kutusu görüntülenir.
Üzerinde Güvenlik sekmesinde, bölge güvenlik ayarlarını yapılandırmak için seçin.
Tıklatın Özel düzey düğme.
Güvenlik ayarları iletişim kutusu görünür ve seçilen bölgenin güvenlik ayarlarını yapılandırabilirsiniz.
Not |
---|
Ayrıca, Internet Seçenekleri iletişim kutusunun Internet Explorer'dan alabilirsiniz.Tıklatın araçları ve i Internet Seçenekleri. |
İle başlayan Windows Internet Explorer 7, özellikle için aşağıdaki güvenlik ayarları .NET Framework bulunmaktadır:
Loose xaml. Denetimleri olup olmadığını Internet Explorer gitmek için ve gevşek XAML dosyaları. (Etkinleştirmek, devre dışı bırakın ve seçenekleri ister).
xaml Tarayıcı uygulamaları. Denetimleri olup olmadığını Internet Explorer gitmek için ve çalıştırın XBAPs. (Etkinleştirmek, devre dışı bırakın ve seçenekleri ister).
Varsayılan olarak, bu ayarlar tüm için etkinleştirilen Internet, Yerel intranet, ve Güvenilen siteler bölgeleri ve için devre dışı Yasak siteler bölgesi.
Güvenlikle ilgili wpf kayıt defteri ayarları
Internet Seçenekleri ' güvenlik ayarlarına ek olarak aşağıdaki kayıt defteri değerlerini güvenliğe duyarlı wpf özellikleri seçerek engellenmesi için kullanılabilir. Aşağıdaki anahtarı altındaki değerleri tanımlanmıştır:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Features
Ayarlanabilir değerler aşağıdaki tabloda listelenmektedir.
Değer adı |
Değer türü |
Value Data |
---|---|---|
XBAPDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
LooseXamlDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
WebBrowserDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
MediaAudioDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
MediaImageDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
MediaVideoDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
ScriptInteropDisallow |
REG_DWORD |
izin vermemek için 1; izin vermek için 0'ı tıklatın. |
WebBrowser denetimi ve özellik denetimleri
wpf WebBrowser Denetim kullanılabilir barındırma Web içeriği. wpf WebBrowser Denetim sarar temel WebBrowser ActiveX denetimi. wpf wpf kullandığınızda uygulama güvenliği için bazı destek sağlar WebBrowser denetlemek için ana güvenilmeyen Web içeriği. Ancak, bazı güvenlik özelliklerini kullanan uygulamalar tarafından doğrudan uygulanmış olması gerekir WebBrowser Denetim. WebBrowser ActiveX denetimi hakkında daha fazla bilgi için bkz: WebBrowser denetimi hakkında genel bilgiler ve öğreticiler.
Not |
---|
Bu bölüm için de geçerlidir Frame kullandığı bu yana kontrol WebBrowser olanak html içeriği. |
wpf WebBrowser denetimini güvenilmeyen Web içeriğini barındırmak için kullanılan, uygulamanızın bir kısmi güven kullanması gereken AppDomain Yardım verenlerden uygulama kodunuzdan kötü amaçlı html komut dosyası kodu. Bu uygulama ile barındırılan komut dosyası kullanarak etkileşim, özellikle doğrudur InvokeScript yöntemi ve ObjectForScripting özelliği. For more information, see WPF Eklentilerine Genel Bakış.
wpf uygulama kullanıyorsa, WebBrowser , güvenliği artırmak ve saldırıları azaltmak için başka bir yolu denetimdir etkinleştirmek Internet Explorer özellik denetimleri. Özellik denetimlerinde eklemelerdir Yöneticiler ve geliştiriciler için Internet Explorer WebBrowser ActiveX denetimini barındıran uygulamalar ve özelliklerini yapılandırmak izin veren Internet Explorer, wpf WebBrowser Denetim sarar. Özellik denetimleri kullanarak yapılandırılabilir CoInternetSetFeatureEnabled işlevi veya kayıt defteri değerlerini değiştirerek. Özellik denetimleri hakkında daha fazla bilgi için bkz: özellik denetimlerinde giriş ve Internet özellik denetimleri.
wpf kullanan tek başına wpf uygulama geliştirme, WebBrowser Denetim, wpf uygulama aşağıdaki özellik denetimleri otomatik olarak etkinleştirir
Özellik denetimi |
---|
FEATURE_MIME_HANDLING |
FEATURE_MIME_SNIFFING |
FEATURE_OBJECT_CACHING |
FEATURE_SAFE_BINDTOOBJECT |
FEATURE_WINDOW_RESTRICTIONS |
FEATURE_ZONE_ELEVATION |
FEATURE_RESTRICT_FILEDOWNLOAD |
FEATURE_RESTRICT_ACTIVEXINSTALL |
FEATURE_ADDON_MANAGEMENT |
FEATURE_HTTP_USERNAME_PASSWORD_DISABLE |
FEATURE_SECURITYBAND |
FEATURE_UNC_SAVEDFILECHECK |
FEATURE_VALIDATE_NAVIGATE_URL |
FEATURE_DISABLE_TELNET_PROTOCOL |
FEATURE_WEBOC_POPUPMANAGEMENT |
FEATURE_DISABLE_LEGACY_COMPRESSION |
FEATURE_SSLUX |
Bu özellik denetimleri koşulsuz olarak etkinleştirilmiş olduğundan, tam güven uygulama tarafından bunları görme. Belirli bir uygulama ve ev sahipliği yapan içerik için herhangi bir güvenlik riski varsa, karşılık gelen özellik denetim bu durumda devreden çıkarılabilir.
Özellik denetimlerinde WebBrowser ActiveX nesnesinin işlem tarafından uygulanır. Güvenilmeyen içerik gidebilirsiniz bağımsız bir uygulama oluşturuyorsanız, bu nedenle, ciddi ek özellik denetimlerinde etkinleştirmeyi düşünebilirsiniz.
Not |
---|
Bu öneri, mshtml ve shdocvw ana güvenlik yönelik genel öneriler dayanır.Daha fazla bilgi için bkz: mshtml ana güvenlik SSS: Kýsým ı II ve mshtml ana güvenlik SSS: Kısım II II. |
Sizin yürütülebilir dosyası, kayıt defteri değerini 1 olarak ayarlayarak aşağıdaki özellik denetimleri etkinleştirmeyi düşünün.
Özellik denetimi |
---|
FEATURE_ACTIVEX_REPURPOSEDETECTION |
FEATURE_BLOCK_LMZ_IMG |
FEATURE_BLOCK_LMZ_OBJECT |
FEATURE_BLOCK_LMZ_SCRIPT |
FEATURE_RESTRICT_RES_TO_LMZ |
FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7 |
FEATURE_SHOW_APP_PROTOCOL_WARN_DIALOG |
FEATURE_LOCALMACHINE_LOCKDOWN |
FEATURE_FORCE_ADDR_AND_STATUS |
FEATURE_RESTRICTED_ZONE_WHEN_FILE_NOT_FOUND |
Dosyanýzý için aşağıdaki özellik denetimi kayıt defteri değerini 0 olarak ayarlayarak devre dışı bırakabilirsiniz.
Özellik denetimi |
---|
FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT |
Kısmi güven çalıştırırsanız XAML browser application (XBAP) bir wpf içeren WebBrowser denetiminde Windows Internet Explorer, wpf barındıran WebBrowser ActiveX denetimi adres alanı Internet Explorer işlemi. WebBrowser ActiveX denetimi içinde barındırılan bu yana Internet Explorer işlemi, tüm Internet Explorer özellik denetimleri de etkin durumda WebBrowser ActiveX denetimi.
Ayrıca Internet Explorer'da çalışmasını XBAP normal bağımsız uygulamalara kıyasla güvenlik ek bir düzeyi alın. Bu ek güvenlik, büyük/küçük Internet Explorer ve bu nedenle WebBrowser ActiveX denetimi çalışır, çünkü korumalı mod varsayılan olarak Windows Vista ve Windows 7. Korumalı mod hakkında daha fazla bilgi için bkz: anlama ve korumalı mod Internet Explorer çalışma.
Not |
---|
Bir wpf içeren bir xbap çalıştırmayı denediğinizde, WebBrowser Firefox, Internet bölgesi iken, denetimde bir SecurityException atılan.wpf güvenlik ilkesi nedeniyle budur. |
aptca derlemeler kısmen güvenilen istemci uygulamaları için devre dışı bırakma
Ne zaman yönetilen derlemeler yüklenir içine global assembly cache (GAC), kullanıcı yüklemek için açık izni sağlamanız gerekir çünkü tam güvenilir kazanmalarından. Tam güvenilir olduklarından, bunları yalnızca tam güvenilir yönetilen istemci uygulamaları kullanabilirsiniz. Bunları kısmen güvenilen uygulamaların izin vermek için bunlar ile işaretlenmesi gereken AllowPartiallyTrustedCallersAttribute (aptca). Kısmi güvende yürütme için güvenli olması için sınanmış derlemeler bu özniteliğiyle işaretlenmesi.
Ancak, olası bir güvenlik kusur içine yüklenen sonra gösteren bir aptca derlemesi için GAC. Bir güvenlik kusur keşfedilen sonra derleme yayıncıları varolan yüklemelerine sorunu gidermek için bir güvenlik güncelleştirmesi oluşturabilir ve sonra bu sorun oluşabilir yüklemeleri karşı bulunmuş. Derleme kullanan diğer tam güvenilir istemci uygulamaların çalışmamasına neden olabilir, ancak bir güncelleştirme için derleme kaldırma seçeneğidir.
WPFolarak aptca derleme bırakılabilir kısmen güvenilen için bir mekanizma sağlar XBAPs olmadan kaldırma aptca derleme.
aptca derleme devre dışı bırakmak için özel kayıt defteri anahtarı oluşturmanız gerekir:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\<AssemblyFullName>, FileVersion=<AssemblyFileVersion>
Aşağıda bir örnek gösterilmektedir:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\aptcagac, Version=1.0.0.0, Culture=neutral, PublicKeyToken=215e3ac809a0fea7, FileVersion=1.0.0.0
Bu anahtar aptca montaj için bir giriş oluşturur. Ayrıca etkinleştirir veya derleme devre dışı bırakır, bu anahtarda bir değer oluşturmak zorunda. Değerin Ayrıntılar şunlardır:
Value Name: aptca_flag.
Value Type: reg_dword.
Value Data: 1 devre dışı bırakmak için; 0 etkinleştirmek için.
Derleme kısmen güvenilen istemci uygulamaları için devre dışı bırakılması varsa, kayıt defteri anahtarı ve değer yaratan bir güncelleştirme yazabilirsiniz.
Not |
---|
Çekirdek .NET Framework derlemeler etkilenmez devre dışı bırakılması bu şekilde onları çünkü olmaları gereken yönetilen uygulamaların çalışma.Destek aptca derlemeler devre dışı bırakmak için üçüncü taraf uygulamalar için öncelikle hedeflemektedir. |
Sandbox davranış bağımsız xaml dosyaları
Gevşek XAML dosyalar yalnızca biçimlendirme xaml dosyaları, bağlı değildir herhangi kod arkada, olay işleyicisi veya uygulamaya özel derleme. Ne zaman gevşek XAML dosyaları geçtiğiniz için doğrudan tarayıcıdan, olduklarından yüklenen bir güvenlik sanal alanında temel varsayılan Internet bölgesi izin kümesi.
Ancak, güvenlik davranışını gevşek zaman farklıdır XAML dosyaları geçtiğiniz için ya da bir NavigationWindow veya Frame tek başına uygulama.
Her iki durumda, gevşek XAML dosya izinlerini devralır için gidilen, ana uygulama. Ancak, bu davranış istenmeyen güvenlik açısından bakıldığında, özellikle gevşek bir durumunda olabilir XAML dosya değil bir varlık tarafından üretilen güvenilen veya bilinmiyor. Bu içerik türü olarak bilinen dış içeriğive her ikisi de Frame ve NavigationWindow onu gezindiği zaman ayırmak için yapılandırılabilir. Yalıtım elde edilen ayarlayarak SandboxExternalContent özelliğini true, aşağıdaki örneklerde gösterildiği gibi Frame ve NavigationWindow:
<Frame
Source="ExternalContentPage.xaml"
SandboxExternalContent="True">
</Frame>
<!-- Sandboxing external content using NavigationWindow-->
<NavigationWindow
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
Source="ExternalContentPage.xaml"
SandboxExternalContent="True">
</NavigationWindow>
Bu ayar, dış içeriği uygulama barındırma işleminden ayrı bir işlemde içine yüklenir. Bu işlem etkin biçimde barındıran uygulama ve istemci bilgisayar yalıtma varsayılan Internet bölgesi izin kümesi kısıtlıdır.
Not |
---|
Karşın gevşek için Gezinti XAML dosyaları da bir NavigationWindow veya Frame tek başına uygulama olarak gerçekleştirilir barındırma altyapısı wpf tarayıcı göre PresentationHost ilgili işlemi, güvenlik düzeyi ise biraz daha küçüktür ne zaman içerik yüklendiğinde Internet Explorer'ın doğrudan üzerinde Windows Vista ve Windows 7 (hala olacak PresentationHost ile). Bunun nedeni, bir Web tarayıcısı kullanarak, tek bir wpf uygulaması Internet Explorer ek korumalı mod güvenlik özelliği sağlamaz |
Güvenlik yükseltmek wpf uygulamaları geliştirmek için kaynaklar
Geliştirmek yardımcı olan bazı ek kaynaklar şunlardır WPF Güvenlik yükseltmek uygulamalar:
Area |
Resource |
---|---|
Yönetilen kod |
|
CAS |
|
ClickOnce |
|
WPF |
Ayrıca bkz.
Kavramlar
WPF Güvenlik Stratejisi - Platform Güvenliği
WPF Güvenlik Stratejisi - Güvenlik Mühendisliği
ClickOnce Güvenliği ve Dağıtımı