セキュリティ (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スタンドアロンアプリケーションは、Windows インストーラー (.msi)、XCopy、または ClickOnce を使用してデプロイされているかどうかにかかわらず、無制限のアクセス許可 (CASFullTrustアクセス許可セット) で実行されます。standalone applications execute with unrestricted permissions ( CASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnce. 部分的に信頼されたスタンドアロンの WPF アプリケーションを ClickOnce で展開することはサポートされていません。Deploying partial-trust, standalone WPF applications with ClickOnce is unsupported. ただし、完全に信頼されたホストアプリケーションでは、.NET Framework AppDomainアドインモデルを使用して部分信頼を作成できます。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 Explorer または Firefox によってXAML ブラウザー アプリケーション (XBAP)XAML browser applications (XBAPs)ホストさExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)れます。詳細については、ドキュメントまたはドキュメントのいずれかを参照してください。「 WPF XAML ブラウザーアプリケーションの概要」を参照してください。browser-hosted applications are hosted by Windows 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ブラウザーでホストされるアプリケーションは、既定では、既定の CASインターネットゾーンのアクセス許可セットに制限されている部分信頼セキュリティサンドボックス内で実行されます。browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASInternet 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

ではWPFWPF 、アプリケーションとブラウザーという2種類のナビゲーションを区別します。 XBAPXBAPsFor 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

アプリケーションのナビゲーションは、次の4種類のコンテンツをサポートURIURIするパックで識別できる場合は安全と見なされます。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 Frameたではなく、main NavigationWindow内の要素をクリックして移動します。The 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. 使用されるプロトコルは、 httphttpsfile、またはmailtoのいずれかです。The protocol being used is either http, https, file, or mailto.

が、これらの条件SecurityExceptionに準拠していない方法でコンテンツに移動しようとすると、がスローされます。XBAPXBAPIf 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 とプレゼンテーションの cluster.exe を含む)。Web browsing software includes any application or component that uses the WinINet or UrlMon APIs, including Internet Explorer and PresentationHost.exe.

Internet Explorer には、次のような、または Internet Explorer からの実行が許可されている機能を構成するためのメカニズムが用意されています。Internet Explorer provides a mechanism by which you can configure the functionality that is allowed to be executed by or from Internet 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 7 以降では、.NET Framework に特化した次のセキュリティ設定が含まれています。Starting with Windows Internet Explorer 7, the following security settings specifically for .NET Framework are included:

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

  • XAML ブラウザー アプリケーションXAML browser applications. Internet Explorer がに移動して実行XBAPXBAPsできるかどうかを制御します。Controls whether Internet 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

WPF WebBrowserコントロールは、Web コンテンツをホストするために使用できます。The WPF WebBrowser control can be used to host Web content. WPF WebBrowserコントロールは、基になる 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.

信頼されWebBrowserていない Web コンテンツをホストするために WPF コントロールを使用する場合、 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コントロールを使用する場合は、セキュリティを強化し、攻撃を軽減するもう1つの方法は、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. 機能コントロールは、管理者および開発者が、WPF WebBrowserコントロールをラップする WebBrowser ActiveX コントロールをホストする internet explorer とアプリケーションの機能を構成できるようにする internet explorer の追加機能です。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 WebBrowserコントロールを使用するスタンドアロン wpf アプリケーションを開発している場合、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. 詳細については、「MSHTML ホストのセキュリティに関する FAQ」を参照してください。第 2部のパートI と MSHTML ホストのセキュリティに関する FAQ:IIのパート 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

Windows internet explorer で wpf XAML ブラウザー アプリケーション (XBAP)XAML browser application (XBAP) WebBrowserコントロールを含む部分信頼を実行すると、wpf は 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 Explorer, WPF hosts the WebBrowser ActiveX control in the address space of the Internet Explorer process. WebBrowser ActiveX コントロールは Internet Explorer プロセスでホストされているため、Internet Explorer のすべての機能コントロールが WebBrowser ActiveX コントロールに対しても有効になります。Since the WebBrowser ActiveX control is hosted in the Internet 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 Vista既定Windows 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.

注意

インターネットゾーンWebBrowser SecurityException内で、WPF コントロールを含む XBAP を Firefox で実行しようとすると、がスローされます。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) にインストールされると、ユーザーはそれらをインストールするための明示的なアクセス許可を提供する必要があるため、完全に信頼されます。When managed assemblies are installed into the 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 アセンブリを GAC にインストールした後にセキュリティの欠陥が発生する可能性があります。However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GAC . セキュリティ上の欠陥が検出されたら、アセンブリの発行者は、既存のインストールでの問題を解決し、問題発見後に発生する可能性があるインストールに備えるため、セキュリティ更新プログラムを作成できます。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.

WPFWPFaptca アセンブリをアンインストールせずに部分信頼XBAPXBAPsの aptca アセンブリを無効にできる機構を提供します。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_FLAGValue Name: APTCA_FLAG.

  • 値の種類:REG_DWORDValue Type: REG_DWORD.

  • 値のデータ:無効にするには1 。有効にする場合は0Value 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

ルースXAMLXAMLファイルは、分離コード、イベントハンドラー、またはアプリケーション固有のアセンブリに依存しない、マークアップのみの 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.

どちらの場合も、移動XAMLXAML先のルースファイルはホストアプリケーションのアクセス許可を継承します。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. 分離を実現するには 、とFrame NavigationWindowの次の例に示すように、SandboxExternalContent プロパティを true に設定します。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からのルースファイルへの移動は、プレゼンテーションホストプロセスを含む WPF ブラウザーホスティングインフラストラクチャに基づいて実装されますが、セキュリティレベルはWindows VistaWindows Vistaとの Internet Explorer でコンテンツが直接読み込まれる場合 (これはWindows 7Windows 7引き続き、プレゼンテーションホストを通じて行われます) よりも少し少ないです。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