Aracılığıyla paylaş


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:

Gezinti diyagramı

İç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

NotNot

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:

  1. Open Control Panel.

  2. Tıklatın Ağ ve Internet ve i Internet Seçenekleri.

    Internet Seçenekleri iletişim kutusu görüntülenir.

  3. Üzerinde Güvenlik sekmesinde, bölge güvenlik ayarlarını yapılandırmak için seçin.

  4. 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.

    Güvenlik Ayarları iletişim kutusu

NotNot

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.

NotNot

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.

NotNot

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.

NotNot

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.

NotNot

Ç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.

NotNot

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

Desenler ve uygulamalar için yöntemler güvenlik kılavuzu

CAS

kod erişim güvenlik

ClickOnce

ClickOnce Güvenliği ve Dağıtımı

WPF

WPF Kısmi Güven Güvenliği

Ayrıca bkz.

Kavramlar

WPF Kısmi Güven Güvenliği

WPF Güvenlik Stratejisi - Platform Güvenliği

WPF Güvenlik Stratejisi - Güvenlik Mühendisliği

kod erişim güvenlik

ClickOnce Güvenliği ve Dağıtımı

XAML'e Genel Bakış (WPF)

Diğer Kaynaklar

Desenler ve uygulamalar için yöntemler güvenlik kılavuzu