セキュリティ (WPF)Security (WPF)

Windows Presentation Foundation (WPF) スタンドアロン アプリケーションとブラウザーによってホストされるアプリケーションを開発する場合は、セキュリティ モデルを検討する必要があります。When developing Windows Presentation Foundation (WPF) standalone and browser-hosted applications, you must consider the security model. WPFWPF 無制限のアクセス許可を持つスタンドアロン アプリケーションの実行 ( CASCAS FullTrustアクセス許可セット) Windows インストーラー (.msi)、XCopy を使用してデプロイするかどうか、またはClickOnceClickOnceします。standalone applications execute with unrestricted permissions ( CASCASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnceClickOnce. 部分的に信頼されたスタンドアロンの WPF アプリケーションを ClickOnce で展開することはサポートされていません。Deploying partial-trust, standalone WPF applications with ClickOnce is unsupported. ただし、完全に信頼されたホスト アプリケーションは部分的に信頼を作成できますAppDomain.NET Framework アドイン モデルを使用します。However, a full-trust host application can create a partial-trust AppDomain using the .NET Framework Add-in model. 詳細については、次を参照してください。 WPF アドインの概要します。For more information, see WPF Add-Ins Overview.

WPFWPF ブラウザーでホストされるアプリケーションがによってホストされるWindows Internet ExplorerWindows Internet ExplorerFirefox、またはいずれかを指定できますXAML ブラウザー アプリケーション (XBAP)XAML browser applications (XBAPs)または looseExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)詳細については、ドキュメントを参照してくださいWPF XAML ブラウザー アプリケーションの概要browser-hosted applications are hosted by Windows Internet ExplorerWindows Internet Explorer or Firefox, and can be either XAML ブラウザー アプリケーション (XBAP)XAML browser applications (XBAPs) or loose Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) documents For more information, see WPF XAML Browser Applications Overview.

WPFWPF ブラウザーでホストされるアプリケーションが既定では、既定値に制限されていますが、部分信頼セキュリティ サンド ボックス内で実行CASCASインターネットゾーン アクセス許可セット。browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASCASInternet zone permission set. これを効果的に分離WPFWPF分離する一般的な Web アプリケーションが予想と同様に、クライアント コンピューターからブラウザーでホストされるアプリケーション。This effectively isolates WPFWPF browser-hosted applications from the client computer in the same way that you would expect typical Web applications to be isolated. XBAP は、デプロイメント URL およびクライアントのセキュリティ構成のセキュリティ ゾーンに基づいて、完全な信頼まで特権を昇格することができます。An XBAP can elevate privileges, up to Full Trust, depending on the security zone of the deployment URL and the client's security configuration. 詳細については、次を参照してください。 WPF 部分信頼セキュリティします。For more information, see WPF Partial Trust Security.

このトピックでは、Windows Presentation Foundation (WPF) スタンドアロン アプリケーションとブラウザーによってホストされるアプリケーションのセキュリティ モデルについて説明します。This topic discusses the security model for Windows Presentation Foundation (WPF) standalone and browser-hosted applications.

このトピックは、次のセクションで構成されています。This topic contains the following sections:

安全なナビゲーションSafe Navigation

XBAPXBAPsWPFWPFナビゲーションの 2 つの種類を区別します。 アプリケーションとブラウザー。For XBAPXBAPs, WPFWPF distinguishes two types of navigation: application and browser.

アプリケーション ナビゲーションは、ブラウザーによってホストされるアプリケーション内のコンテンツ項目間のナビゲーションです。Application navigation is navigation between items of content within an application that is hosted by a browser. ブラウザー ナビゲーションは、ブラウザー自体のコンテンツとロケーション URL を変更するナビゲーションです。Browser navigation is navigation that changes the content and location URL of a browser itself. アプリケーション ナビゲーション (通常は XAML) とブラウザー ナビゲーション (通常は HTML) 間のリレーションシップは、次の図に示します。The relationship between application navigation (typically XAML) and browser navigation (typically HTML) is shown in the following illustration:

アプリケーションのナビゲーションとブラウザー ナビゲーション間のリレーションシップ。

安全と見なされるコンテンツの種類、XBAPXBAPに移動するが主に続くアプリケーションまたはブラウザーのナビゲーションを使用するかどうか。The type of content that is considered safe for an XBAPXBAP to navigate to is primarily determined by whether application navigation or browser navigation is used.

アプリケーション ナビゲーションのセキュリティApplication Navigation Security

アプリケーション ナビゲーションがパックには安全と見なさURIURI、4 種類のコンテンツをサポートします。Application navigation is considered safe if it can be identified with a pack URIURI, which supports four types of content:

コンテンツ タイプContent Type 説明Description URI の例URI Example
リソースResource ビルドの種類のプロジェクトに追加されるファイルリソースします。Files that are added to a project with a build type of Resource. pack://application:,,,/MyResourceFile.xaml
ContentContent ビルドの種類のプロジェクトに追加されるファイルコンテンツします。Files that are added to a project with a build type of Content. pack://application:,,,/MyContentFile.xaml
起点サイトSite of origin ビルドの種類のプロジェクトに追加されるファイルNoneします。Files that are added to a project with a build type of None. pack://siteoforigin:,,,/MySiteOfOriginFile.xaml
アプリケーション コードApplication code コンパイルされたコード分離を含む XAML リソース。XAML resources that have a compiled code-behind.

- または --or-

ビルドの種類のプロジェクトに追加される XAML ファイルページします。XAML files that are added to a project with a build type of Page.
pack://application:,,,/MyResourceFile .xamlpack://application:,,,/MyResourceFile .xaml

注意

アプリケーション データ ファイルとパックの詳細についてはURIURIsを参照してくださいWPF アプリケーションのリソース、コンテンツ、およびデータ ファイルします。For more information about application data files and pack URIURIs, see WPF Application Resource, Content, and Data Files.

これらのコンテンツ タイプのファイルは、ユーザーまたはプログラムを使用して移動できます。Files of these content types can be navigated to by either the user or programmatically:

  • ユーザー ナビゲーションUser Navigation. ユーザーが移動する をクリックして、Hyperlink要素。The user navigates by clicking a Hyperlink element.

  • プログラム ナビゲーションProgrammatic Navigation. 設定して、ユーザーに関連するせず、アプリケーションに移動した、NavigationWindow.Sourceプロパティ。The application navigates without involving the user, for example, by setting the NavigationWindow.Source property.

ブラウザー ナビゲーションのセキュリティBrowser Navigation Security

ブラウザー ナビゲーションは、次の条件の下でのみ安全と見なされます。Browser navigation is considered safe only under the following conditions:

  • ユーザー ナビゲーションUser Navigation. ユーザーが移動する をクリックして、Hyperlinkメイン内にある要素NavigationWindowではなく、入れ子になったFrameThe user navigates by clicking a Hyperlink element that is within the main NavigationWindow, not in a nested Frame.

  • ゾーンZone. 移動先のコンテンツが、インターネットまたはローカル イントラネット上に存在する。The content being navigated to is located on the Internet or the local intranet.

  • プロトコルProtocol. 使用されているプロトコルがhttphttpsファイル、またはmailtoします。The protocol being used is either http, https, file, or mailto.

場合、XBAPXBAPこれらの条件に準拠していない方法でコンテンツに移動しようとしています、SecurityExceptionがスローされます。If an XBAPXBAP attempts to navigate to content in a manner that does not comply with these conditions, a SecurityException is thrown.

Web ブラウザーのセキュリティ設定Web Browsing Software Security Settings

コンピューターのセキュリティ設定によって、Web ブラウザーに付与されるアクセス権が決まります。The security settings on your computer determine the access that any Web browsing software is granted. Web ブラウザーでは、任意のアプリケーションまたはを使用するコンポーネントが含まれています、 WinINetまたはUrlMon Api、Internet Explorer や PresentationHost.exe など。Web browsing software includes any application or component that uses the WinINet or UrlMon APIs, including Internet Explorer and PresentationHost.exe.

Internet ExplorerInternet Explorer またはを実行する許可されている機能を構成できますメカニズムを提供しますInternet ExplorerInternet Explorer次を含みます。provides a mechanism by which you can configure the functionality that is allowed to be executed by or from Internet ExplorerInternet Explorer, including the following:

  • .NET framework に依存するコンポーネント.NET Framework-reliant components

  • ActiveX コントロールおよびプラグインActiveX controls and plug-ins

  • ダウンロードDownloads

  • [スクリプティング]Scripting

  • ユーザー認証User Authentication

この方法でセキュリティで保護することができる機能のコレクションがのゾーンごとに構成されている、インターネットイントラネット信頼済みサイト、および制限付きサイトゾーン。The collection of functionality that can be secured in this way is configured on a per-zone basis for the Internet, Intranet, Trusted Sites, and Restricted Sites zones. 次の手順では、セキュリティ設定の構成方法について説明します。The following steps describe how to configure your security settings:

  1. [コントロール パネル] を開きます。Open Control Panel.

  2. クリックしてネットワークとインターネット をクリックし、インターネット オプションします。Click Network and Internet and then click Internet Options.

    [インターネット オプション] ダイアログ ボックスが表示されます。The Internet Options dialog box appears.

  3. セキュリティ タブで、セキュリティ設定を構成するゾーンを選択します。On the Security tab, select the zone to configure the security settings for.

  4. をクリックして、レベルのカスタマイズボタンをクリックします。Click the Custom Level button.

    セキュリティ設定 ダイアログ ボックスが表示され、選択したゾーンのセキュリティ設定を構成することができます。The Security Settings dialog box appears and you can configure the security settings for the selected zone.

    セキュリティの設定 ダイアログ ボックスのスクリーン ショット。

注意

[インターネット オプション] ダイアログ ボックスは、Internet Explorer から開くこともできます。You can also get to the Internet Options dialog box from Internet Explorer. クリックしてツール をクリックし、インターネット オプションします。Click Tools and then click Internet Options.

以降でWindows Internet Explorer 7Windows Internet Explorer 7、具体的には .NET Framework の次のセキュリティ設定が含まれています。Starting with Windows Internet Explorer 7Windows Internet Explorer 7, the following security settings specifically for .NET Framework are included:

  • Loose XAMLLoose XAML. コントロールかどうかInternet ExplorerInternet Explorerできますに移動し、疎XAMLXAMLファイル。Controls whether Internet ExplorerInternet Explorer can navigate to and loose XAMLXAML files. ([有効]、[無効]、および [ダイアログを表示する] オプション)。(Enable, Disable, and Prompt options).

  • XAML ブラウザー アプリケーションXAML browser applications. コントロールかどうかInternet ExplorerInternet Explorerに移動し、実行できるXBAPXBAPsします。Controls whether Internet ExplorerInternet Explorer can navigate to and run XBAPXBAPs. ([有効]、[無効]、および [ダイアログを表示する] オプション)。(Enable, Disable, and Prompt options).

既定では、これらの設定はすべて有効になっているため、インターネットローカル イントラネット、および信頼済みサイトゾーン、および無効にするに、制限付きサイトゾーン。By default, these settings are all enabled for the Internet, Local intranet, and Trusted sites zones, and disabled for the Restricted sites zone.

[インターネット オプション] から使用できるセキュリティ設定以外に、セキュリティ上重要なさまざまな WPF 機能を選択的にブロックするために次のレジストリ値を使用できます。In addition to the security settings available through the Internet Options, the following registry values are available for selectively blocking a number of security-sensitive WPF features. 値は次のキーで定義されます。The values are defined under the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Features

設定可能な値を次の表に示します。The following table lists the values that can be set.

値名Value Name 値型Value Type 値のデータValue Data
XBAPDisallowXBAPDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
LooseXamlDisallowLooseXamlDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
WebBrowserDisallowWebBrowserDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
MediaAudioDisallowMediaAudioDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
MediaImageDisallowMediaImageDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
MediaVideoDisallowMediaVideoDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.
ScriptInteropDisallowScriptInteropDisallow REG_DWORDREG_DWORD 許可しない場合は 1、許可する場合は 0。1 to disallow; 0 to allow.

WebBrowser コントロールと機能コントロールWebBrowser Control and Feature Controls

WPFWebBrowserコントロールは、Web コンテンツをホストするために使用できます。The WPF WebBrowser control can be used to host Web content. WPFWebBrowserコントロールが基になる WebBrowser ActiveX コントロールをラップします。The WPF WebBrowser control wraps the underlying WebBrowser ActiveX control. WPF では、いくつかのサポートを提供、WPF を使用すると、アプリケーションを保護するためWebBrowserコントロールをホストするには、Web コンテンツが信頼されていません。WPF provides some support for securing your application when you use the WPF WebBrowser control to host untrusted Web content. 使用してアプリケーションによって直接ただし、一部のセキュリティ機能を適用する必要があります、WebBrowserコントロール。However, some security features must be applied directly by the applications using the WebBrowser control. WebBrowser ActiveX コントロールの詳細については、次を参照してください。 WebBrowser コントロールの概要とチュートリアルします。For more information about the WebBrowser ActiveX control, see WebBrowser Control Overviews and Tutorials.

注意

このセクションにも当てはまります、Frameを使用するための制御、 WebBrowser HTML コンテンツに移動します。This section also applies to the Frame control since it uses the WebBrowser to navigate to HTML content.

場合、WPFWebBrowser信頼されていない Web コンテンツをホストするコントロールを使用すると、アプリケーションは部分的に信頼を使用する必要がありますAppDomain悪意のある HTML スクリプト コードからアプリケーション コードを分離します。If the WPF WebBrowser control is used to host untrusted Web content, your application should use a partial-trust AppDomain to help insulate your application code from potentially malicious HTML script code. これを使用して、アプリケーションがホストされているスクリプトと対話する場合に特に、InvokeScriptメソッドとObjectForScriptingプロパティ。This is especially true if your application is interacting with the hosted script by using the InvokeScript method and the ObjectForScripting property. 詳細については、次を参照してください。 WPF アドインの概要します。For more information, see WPF Add-Ins Overview.

アプリケーションは、WPF を使用する場合WebBrowserコントロール、セキュリティを強化し、攻撃を軽減する別の方法は、Internet Explorer 機能コントロールを有効にします。If your application uses the WPF WebBrowser control, another way to increase security and mitigate attacks is to enable Internet Explorer feature controls. 機能コントロールは、Internet Explorer と WebBrowser ActiveX コントロールをホストしているアプリケーションの機能を構成するには、管理者および開発者を許可する Internet Explorer に追加される、WPFWebBrowserラップを制御します。Feature controls are additions to Internet Explorer that allow administrators and developers to configure features of Internet Explorer and applications that host the WebBrowser ActiveX control, which the WPF WebBrowser control wraps. 機能コントロールを使用して構成できる、 CoInternetSetFeatureEnabled関数またはレジストリの値を変更します。Feature controls can be configured by using the CoInternetSetFeatureEnabled function or by changing values in the registry. 機能コントロールの詳細については、次を参照してください。機能コントロールの概要インターネット機能コントロールします。For more information about feature controls, see Introduction to Feature Controls and Internet Feature Controls.

WPF を使用するスタンドアロン WPF アプリケーションを開発しているかどうかWebBrowserコントロール、WPF は、次の機能、アプリケーションのコントロールを自動的に有効にします。If you are developing a standalone WPF application that uses the WPF WebBrowser control, WPF automatically enables the following feature controls for your application.

機能コントロールFeature Control
FEATURE_MIME_HANDLINGFEATURE_MIME_HANDLING
FEATURE_MIME_SNIFFINGFEATURE_MIME_SNIFFING
FEATURE_OBJECT_CACHINGFEATURE_OBJECT_CACHING
FEATURE_SAFE_BINDTOOBJECTFEATURE_SAFE_BINDTOOBJECT
FEATURE_WINDOW_RESTRICTIONSFEATURE_WINDOW_RESTRICTIONS
FEATURE_ZONE_ELEVATIONFEATURE_ZONE_ELEVATION
FEATURE_RESTRICT_FILEDOWNLOADFEATURE_RESTRICT_FILEDOWNLOAD
FEATURE_RESTRICT_ACTIVEXINSTALLFEATURE_RESTRICT_ACTIVEXINSTALL
FEATURE_ADDON_MANAGEMENTFEATURE_ADDON_MANAGEMENT
FEATURE_HTTP_USERNAME_PASSWORD_DISABLEFEATURE_HTTP_USERNAME_PASSWORD_DISABLE
FEATURE_SECURITYBANDFEATURE_SECURITYBAND
FEATURE_UNC_SAVEDFILECHECKFEATURE_UNC_SAVEDFILECHECK
FEATURE_VALIDATE_NAVIGATE_URLFEATURE_VALIDATE_NAVIGATE_URL
FEATURE_DISABLE_TELNET_PROTOCOLFEATURE_DISABLE_TELNET_PROTOCOL
FEATURE_WEBOC_POPUPMANAGEMENTFEATURE_WEBOC_POPUPMANAGEMENT
FEATURE_DISABLE_LEGACY_COMPRESSIONFEATURE_DISABLE_LEGACY_COMPRESSION
FEATURE_SSLUXFEATURE_SSLUX

これらの機能コントロールは無条件で有効になるため、完全信頼アプリケーションに悪影響が及ぶ場合があります。Since these feature controls are enabled unconditionally, a full-trust application might be impaired by them. この場合、特定のアプリケーションとそのアプリケーションがホストしているコンテンツにセキュリティ上のリスクがなければ、対応する機能コントロールを無効にできます。In this case, if there is no security risk for the specific application and the content it is hosting, the corresponding feature control can be disabled.

機能コントロールは、WebBrowser ActiveX オブジェクトをインスタンス化するプロセスで適用されます。Feature controls are applied by the process instantiating the WebBrowser ActiveX object. そのため、信頼されていないコンテンツに移動できるスタンドアロン アプリケーションを作成する場合は、その他の機能コントロールを有効にすることを検討すべきです。Therefore, if you are creating a stand-alone application that can navigate to untrusted content, you should seriously consider enabling additional feature controls.

注意

この推奨事項は、MSHTML および SHDOCVW ホスト セキュリティの一般的な推奨事項に基づいています。This recommendation is based on general recommendations for MSHTML and SHDOCVW host security. 詳細については、次を参照してくださいThe MSHTML Host Security FAQ:。パート I of IIMSHTML ホスト セキュリティ FAQ:パート II of IIします。For more information, see The MSHTML Host Security FAQ: Part I of II and The MSHTML Host Security FAQ: Part II of II.

実行可能ファイルでは、レジストリ値を 1 に設定して以下の機能コントロールを有効にすることを検討してください。For your executable, consider enabling the following feature controls by setting the registry value to 1.

機能コントロールFeature Control
FEATURE_ACTIVEX_REPURPOSEDETECTIONFEATURE_ACTIVEX_REPURPOSEDETECTION
FEATURE_BLOCK_LMZ_IMGFEATURE_BLOCK_LMZ_IMG
FEATURE_BLOCK_LMZ_OBJECTFEATURE_BLOCK_LMZ_OBJECT
FEATURE_BLOCK_LMZ_SCRIPTFEATURE_BLOCK_LMZ_SCRIPT
FEATURE_RESTRICT_RES_TO_LMZFEATURE_RESTRICT_RES_TO_LMZ
FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7
FEATURE_SHOW_APP_PROTOCOL_WARN_DIALOGFEATURE_SHOW_APP_PROTOCOL_WARN_DIALOG
FEATURE_LOCALMACHINE_LOCKDOWNFEATURE_LOCALMACHINE_LOCKDOWN
FEATURE_FORCE_ADDR_AND_STATUSFEATURE_FORCE_ADDR_AND_STATUS
FEATURE_RESTRICTED_ZONE_WHEN_FILE_NOT_FOUNDFEATURE_RESTRICTED_ZONE_WHEN_FILE_NOT_FOUND

実行可能ファイルでは、レジストリ値を 0 に設定して以下の機能コントロールを無効にすることを検討してください。For your executable, consider disabling the following feature control by setting the registry value to 0.

機能コントロールFeature Control
FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPTFEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT

部分的に信頼を実行する場合XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP)を含む、WPFWebBrowser制御Windows Internet ExplorerWindows Internet ExplorerWPF、Internet Explorer プロセスのアドレス空間で WebBrowser ActiveX コントロールをホストします。If you run a partial-trust XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP) that includes a WPF WebBrowser control in Windows Internet ExplorerWindows Internet Explorer, WPF hosts the WebBrowser ActiveX control in the address space of the Internet Explorer process. WebBrowser ActiveX コントロールがでホストされているため、Internet ExplorerInternet Explorerプロセスでは、WebBrowser ActiveX コントロールのすべての Internet Explorer の機能コントロールも有効にします。Since the WebBrowser ActiveX control is hosted in the Internet ExplorerInternet Explorer process, all of the feature controls for Internet Explorer are also enabled for the WebBrowser ActiveX control.

Internet Explorer で実行されている XBAP にも、標準のスタンドアロン アプリケーションよりも高いレベルのセキュリティが適用されます。XBAPs running in Internet Explorer also get an additional level of security compared to normal standalone applications. この追加のセキュリティは Internet Explorer、およびそのため、WebBrowser ActiveX コントロールで実行されるため保護モードは既定でWindows VistaWindows VistaWindows 7Windows 7します。This additional security is because Internet Explorer, and therefore the WebBrowser ActiveX control, runs in protected mode by default on Windows VistaWindows Vista and Windows 7Windows 7. 保護モードの詳細については、次を参照してください。を理解すると、保護モードの Internet Explorer での作業します。For more information about protected mode, see Understanding and Working in Protected Mode Internet Explorer.

注意

WPF を含む XBAP を実行しようとするかどうかはWebBrowserfirefox の場合、インターネット ゾーン内のコントロール、SecurityExceptionがスローされます。If you try to run an XBAP that includes a WPF WebBrowser control in Firefox, while in the Internet zone, a SecurityException will be thrown. これは、WPF セキュリティ ポリシーが原因です。This is due to WPF security policy.

部分信頼クライアント アプリケーションに対する APTCA の無効化Disabling APTCA Assemblies for Partially Trusted Client Applications

マネージ アセンブリがインストールされている場合、グローバル アセンブリ キャッシュ (GAC)global assembly cache (GAC)ユーザーがそれらをインストールする明示的なアクセス許可を提供する必要がありますので、完全に信頼されたなります。When managed assemblies are installed into the グローバル アセンブリ キャッシュ (GAC)global assembly cache (GAC), they become fully trusted because the user must provide explicit permission to install them. 完全に信頼されているため、これらを使用できるのは完全信頼マネージド クライアント アプリケーションのみです。Because they are fully trusted, only fully trusted managed client applications can use them. 部分的に信頼されたアプリケーションが使用するためでマークする必要があります、 AllowPartiallyTrustedCallersAttribute (APTCA)。To allow partially trusted applications to use them, they must be marked with the AllowPartiallyTrustedCallersAttribute (APTCA). この属性は、部分信頼で実行しても安全であるとテストで確認されたアセンブリだけに設定します。Only assemblies that have been tested to be safe for execution in partial trust should be marked with this attribute.

ただし、APTCA アセンブリにインストールされた後、セキュリティ上の欠陥が発生することは、GACGACします。However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GACGAC. セキュリティ上の欠陥が検出されたら、アセンブリの発行者は、既存のインストールでの問題を解決し、問題発見後に発生する可能性があるインストールに備えるため、セキュリティ更新プログラムを作成できます。Once a security flaw is discovered, assembly publishers can produce a security update to fix the problem on existing installations, and to protect against installations that may occur after the problem is discovered. 更新プログラムの 1 つのオプションとして、アセンブリのアンインストールが考えられますが、その場合はこのアセンブリを使用する他の完全信頼クライアント アプリケーションを破損するおそれがあります。One option for the update is to uninstall the assembly, although that may break other fully trusted client applications that use the assembly.

WPFWPF 部分的な信頼、APTCA アセンブリを無効にできますメカニズムを提供しますXBAPXBAPsAPTCA アセンブリをアンインストールせずにします。provides a mechanism by which an APTCA assembly can be disabled for partially trusted XBAPXBAPs without uninstalling the APTCA assembly.

APTCA アセンブリを無効にするには、特殊なレジストリ キーを作成する必要があります。To disable an APTCA assembly, you have to create a special registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\<AssemblyFullName>, FileVersion=<AssemblyFileVersion>

次のコードは一例を示しています。The following shows an example:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\aptcagac, Version=1.0.0.0, Culture=neutral, PublicKeyToken=215e3ac809a0fea7, FileVersion=1.0.0.0

このキーにより、APTCA アセンブリのエントリが設定されます。This key establishes an entry for the APTCA assembly. また、アセンブリを有効または無効にする値をこのキーに作成する必要があります。You also have to create a value in this key that enables or disables the assembly. 値の詳細を次に示します。The following are the details of the value:

  • 値の名前:APTCA_FLAGします。Value Name: APTCA_FLAG.

  • 値の種類:REG_DWORDします。Value Type: REG_DWORD.

  • 値のデータ:1 ; を無効にするには0有効にします。Value Data: 1 to disable; 0 to enable.

部分信頼クライアント アプリケーションに対してアセンブリを無効にする必要がある場合は、レジストリ キーおよび値を作成する更新プログラムを作成します。If an assembly has to be disabled for partially trusted client applications, you can write an update that creates the registry key and value.

注意

.NET Framework のコア アセンブリには、マネージ アプリケーションを実行するために必要であるために、この方法で無効にしては受けません。Core .NET Framework assemblies are not affected by disabling them in this way because they are required for managed applications to run. APTCA アセンブリの無効化のサポートは、主にサードパーティ アプリケーションを対象にしたものです。Support for disabling APTCA assemblies is primarily targeted to third-party applications.

Loose XAML ファイルに対するサンドボックスの動作Sandbox Behavior for Loose XAML Files

LooseXAMLXAMLファイルは、分離コード、イベント ハンドラー、またはアプリケーション固有のアセンブリに依存しないマークアップのみの XAML ファイルです。Loose XAMLXAML files are markup-only XAML files that do not depend on any code-behind, event handler, or application-specific assembly. ときに失わXAMLXAMLブラウザーから直接ファイルに移動、既定のインターネット ゾーン アクセス許可セットに基づいてセキュリティ サンド ボックスに読み込まれます。When loose XAMLXAML files are navigated to directly from the browser, they are loaded in a security sandbox based on the default Internet zone permission set.

ただし、セキュリティ動作は異なる場合は、疎XAMLXAMLからいずれかのファイルに移動、NavigationWindowまたはFrameスタンドアロン アプリケーションでします。However, the security behavior is different when loose XAMLXAML files are navigated to from either a NavigationWindow or Frame in a standalone application.

どちらの場合も、looseXAMLXAMLにナビゲートするファイルは、ホスト アプリケーションのアクセス許可を継承します。In both cases, the loose XAMLXAML file that is navigated to inherits the permissions of its host application. ただし、この動作できない可能性があります、緩やかな場合は特に、セキュリティの観点から望ましくXAMLXAMLファイルは、信頼されていないか、不明なエンティティが作成されました。However, this behavior may be undesirable from a security perspective, particularly if a loose XAMLXAML file was produced by an entity that is either not trusted or unknown. この種類のコンテンツと呼ばれる外部コンテンツ、両方とFrameNavigationWindowに移動したときに分離することができます。This type of content is known as external content, and both Frame and NavigationWindow can be configured to isolate it when navigated to. 設定して隔離、 SandboxExternalContentプロパティを true に次の例で示すようにFrameNavigationWindow:Isolation is achieved by setting the SandboxExternalContent property to true, as shown in the following examples for Frame and NavigationWindow:

<Frame 
  Source="ExternalContentPage.xaml" 
  SandboxExternalContent="True">
</Frame>
<!-- Sandboxing external content using NavigationWindow-->
<NavigationWindow 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  Source="ExternalContentPage.xaml" 
  SandboxExternalContent="True">
</NavigationWindow>

このように設定すると、外部コンテンツは、アプリケーションをホストするプロセスとは異なるプロセスに読み込まれます。With this setting, external content will be loaded into a process that is separate from the process that is hosting the application. このプロセスは既定のインターネット ゾーン アクセス許可セットに限定されており、ホスト アプリケーションとクライアント コンピューターから外部コンテンツを効果的に分離します。This process is restricted to the default Internet zone permission set, effectively isolating it from the hosting application and the client computer.

注意

でもへのナビゲーションXAMLXAMLからいずれかのファイル、NavigationWindowまたはFrameスタンドアロンのアプリケーションが実装されている、PresentationHost プロセスに関連するインフラストラクチャをホストする WPF のブラウザーに基づくセキュリティ レベルとはInternet Explorer で直接、コンテンツが読み込まれるときによりも若干小さいWindows VistaWindows VistaWindows 7Windows 7(これもよい presentationhost)。Even though navigation to loose XAMLXAML files from either a NavigationWindow or Frame in a standalone application is implemented based on the WPF browser hosting infrastructure, involving the PresentationHost process, the security level is slightly less than when the content is loaded directly in Internet Explorer on Windows VistaWindows Vista and Windows 7Windows 7 (which would still be through PresentationHost). これは、Web ブラウザーを使用しているスタンドアロン WPF アプリケーションに、Internet Explorer の保護モード セキュリティ機能が追加されていないためです。This is because a standalone WPF application using a Web browser does not provide the additional Protected Mode security feature of Internet Explorer.

セキュリティを向上する WPF アプリケーションを開発するためのリソースResources for Developing WPF Applications that Promote Security

次にその他のリソースの開発に役立つWPFWPFセキュリティを向上するアプリケーション。The following are some additional resources to help develop WPFWPF applications that promote security:

区分Area リソースResource
マネージド コードManaged code patterns & practices アプリケーション セキュリティ ガイダンス インデックスPatterns and Practices Security Guidance for Applications
CASCAS コード アクセス セキュリティCode Access Security
ClickOnceClickOnce ClickOnce のセキュリティと配置ClickOnce Security and Deployment
WPFWPF WPF 部分信頼セキュリティWPF Partial Trust Security

関連項目See also