أمن WPF

When developing Windows Presentation Foundation (WPF) standalone and browser-hosted applications, you must consider the security model. WPF standalone applications execute with unrestricted permissions (CAS FullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnce. نشر الثقة الجزئي، التطبيقات WPF مستقل مع ClickOnce هو غير معتمد. ومع ذلك، كامل-يمكن إنشاء التطبيق مضيف الثقة الجزئي ثقة AppDomainاستخدام الوظيفة الإضافية لبرنامج.NET Framework نموذج. لمزيد من المعلومات، راجع نظرة عامة على الوظائف الإضافية لـ WPF.

WPFيستضيفها مستعرض-استضافة التطبيقاتWindows Internet Explorerأو Firefox، و يمكن أن تكون أماتطبيقات مستعرض XBAP (XBAP)أو محكمةExtensible Application Markup Language (XAML)مستندات للحصول على مزيد من المعلومات، راجعنظرة عامة حول تطبيقات مستعرض WPF XAML.

WPF browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CAS Internet zone permission set. هذا فعال isolates WPFالتطبيقات التي تتم استضافتها مستعرض من كمبيوتر العميل في بالطريقة نفسها التي تتوقع تطبيقات ويب عادة أن تكون معزولة. XBAP يمكن رفع مستوى الامتيازات، إلى "الثقة تامة" استناداً إلى منطقة أمان URL لنشر و تكوين الأمان الخاصة بالعميل. لمزيد من المعلومات، راجع الأمان ذا الثقة الجزئية الخاص بWPF.

يناقش هذا الموضوع طراز الأمان لWindows Presentation Foundation (WPF) المستقل و تطبيقات مستعرض-المستضيف.

يشمل هذا الموضوع على الأقسام التالية.

  • الملاحة الآمنة

  • إعدادات الأمان برامج استعراض ويب

  • عناصر تحكم الWebBrowser وعناصر تحكم الميزة

  • تعطيل APTCA بشكل جزئي لتطبيقات العميل الموثوقة جزئيا

  • سلوك إليه تحديد الصلاحيات ل XAML ملفات

  • موارد لتطوير التطبيقات WPF يرقّي الأمان

الملاحة الآمنة

ل تطبيقات XBAP، WPFتميز نوعين من التنقل: التطبيق و المستعرض.

التنقل بين التطبيقات هو التنقل بين عناصر المحتوى داخل أحد تطبيقات التي هو التي تتم استضافتها باستخدام مستعرض. التنقل في المستعرض هو التنقل يتغير المحتوى و مستعرض نفسه محدد موقع معلومات الموقع. العلاقة بين التنقل تطبيق (عادة XAML) والتنقل مستعرض (عادة HTML) هو هو مبين في التوضيح التالي:

الرسم التخطيطي للتنقل

النوع المحتوى الذي هو تعتبر آمنة XBAPللانتقال إلى هو حصينة أساسا بما إذا كان يجب التنقل تطبيق أو تنقل مستعرض هو المستخدمة.

امن ملاحة التطبيق

التنقل بين تطبيقات هو بعين الاعتبار اﻷمن إذا كان يمكن تعريفه باستخدام "يحزم" URI، الذي يعتمد على الرابع أنواع من المحتوى:

نوع المحتوى

الوصف

مثال URI

المورد

ملفات المضافة إلى مشروع باستخدام نوع بنية الموارد.

pack://application:,,,/MyResourceFile.xaml

المحتوى

ملفات المضافة إلى مشروع مع نوع بنية المحتوى.

pack://application:,,,/MyContentFile.xaml

الموقع الأصلي

ملفات المضافة إلى مشروع باستخدام نوع بنية بلا .

pack://siteoforigin:,,,/MySiteOfOriginFile.xaml

تعليمات برمجية للتطبيق

موارد XAML التي تحتوي على التعليمة برمجية-الخلف مترجمة.

-أو-

ملفات XAML التي تمت إضافتها إلى مشروع مع نوع بنية الصفحة.

pack://application:,,,/MyResourceFile.xaml

ملاحظةملاحظة

لمزيد من المعلومات حول تطبيق بيانات الملفات وحزم معرفات URI، راجع موارد التطبيق WPF و المحتوى و الملفات البيانات.

ملفات من هذه محتوى يمكن أن يتم الانتقال أنواع إلى أما مستخدم أو برمجياً:

  • تنقل مستخدم. يتنقل مستخدم بواسطة بالنقر فوق أحد Hyperlinkالعنصر.

  • تنقل برمجي. انتقال تطبيق بدون خاصة بالمستخدم، على سبيل المثال، بواسطة تعيين NavigationWindow.Sourceخاصية.

أمن ملاحة المتصفح

التنقل بين مستعرض هو اعتبار آمن فقط في الحالات التالية:

  • تنقل مستخدم. يتنقل مستخدم بالنقر فوق Hyperlinkالعنصر الذي هو داخل الرئيسي NavigationWindow، لا في المتداخلة Frame.

  • المنطقة. المحتوى الذي تم الانتقال إليه موجوداً على الإنترنت أو الإنترانت المحلي .

  • Protocol. هو بروتوكول المستخدم أما http https، الملف أو mailto .

إذا كان XBAPيحاول التنقل إلى المحتوى بطريقة لا يتفق مع هذه الشروط، SecurityExceptionهو طرح.

إعدادات الأمان برامج استعراض ويب

تحديد إعدادات الأمان تشغيل الكمبيوتر الخاص بك الوصول الذي تم منحة أي استعراض برامج ويب. تتضمن برامج استعراض ويب أي تطبيق أو مكوّن الذي يستخدم WinINet أو UrlMon واجهات برمجة التطبيقات، بما في ذلك برنامج إنترنت مستكشف و PresentationHost.exe.

يوفر برنامج Internet Explorer آلية تمكنك من تكوين الوظيفة التي يُسمح تنفيذها عن طريق أو منبرنامج Internet Explorer ، بما في ذلك التالي:

  • المكونات القائمة علىNET Framewor.-

  • وظائف التوصيل وعناصر التحكم ActiveX

  • التنزيلات

  • برمجة

  • المصادقة على المستخدم

مجموعة الوظائف التي يمكن أن تكون آمنة في ترتيب هو طريقة هو المكونة تشغيل bas كل منطقة هو إنترنت و إنترانت ، المواقع الموثوق بهاومناطق مواقع محظورة . تصف الخطوات التالية كيفية إلى تكوين إعدادات الأمان الخاصة بك:

  1. Openعنصر تحكم Panel.

  2. انقر فوق شبكة الاتصال و إنترنت و ثم انقر فوق خيارات إنترنت.

    خيارات إنترنت صندوق حوار تظهر.

  3. في التبويب الأمان، تحديد المنطقة إلى تكوين إعدادات الأمان.

  4. انقر فوق الزر المستوى مخصص.

    إعدادات الأمان صندوق حوار يظهر ويمكنك تكوين إعدادات الأمان للمنطقة المحددة.

    مربع الحوار "إعدادات الأمان"

ملاحظةملاحظة

كما يمكن الوصول إلى صندوق الحوار "خيارات إنترنت" من Internet مستكشف.انقر فوق أدوات و ثم انقر فوق خيارات إنترنت.

بدءاً من Windows Internet Explorer 7، إعدادات الأمان التالية الخاصة ب NET Framewor.الموجودة:

  • حر XAML. عناصر التحكم ما إذا كان يمكن برنامج Internet Explorer التنقل الي و غير المحكم الملفات XAML . (تمكين تعطيل، و خيارات موجه).

  • تطبيقات المستعرضXAML . عناصر التحكم ما إذا كان يمكن برنامج Internet Explorer التنقل الي وتشغيل تطبيقات XBAP. (تمكين تعطيل، و خيارات موجه).

بواسطة الإعدادات الافتراضية، تكون هذه الإعدادات الجميع ممكنة ل إنترنت و إنترانت المحلي مناطق مواقع موثوق بها ، وتعطيل للمنطقة المواقع المقيدة.

إعدادات السجل WPF متعلقة بالأمان

بالإضافة إلى إعدادات الأمان من خلال "خيارات إنترنت"، تتوفر قيم السجل التالية لحظر عددا من الميزات WPF الأمان الهامة بشكل انتقائي. يتم تعريف قيم تحت المفتاح التالي:

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

يلي جدول القوائم للقيم التي يمكن تعيينها.

اسم القيمة:

نوع القيمة

بيانات القيمة

XBAPDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

LooseXamlDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

WebBrowserDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

MediaAudioDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

MediaImageDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

MediaVideoDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

ScriptInteropDisallow

REG_DWORD

1 لعدم السماح; 0 للسماح.

عناصر تحكم الWebBrowser وعناصر تحكم الميزة

WPF WebBrowserعنصر تحكم يمكن استخدامها باستضافة محتوى ويب. WPF WebBrowserيلتف عنصر التحكم متصفح ويب الأساسي عنصر تحكم ActiveX. WPF توفر بعض الدعم عن تأمين تطبيق الخاص بك عند استخدام WPF WebBrowserعنصر تحكم باستضافة محتوى ويب غير موثوق به. ومع ذلك، يجب أن يتم تطبيق بعض ميزات الأمان مباشرة بواسطة التطبيقات التي تستخدم WebBrowserعنصر تحكم. لمزيد من المعلومات حول متصفح ويب عنصر تحكم ActiveX، راجع نظرات عامة على عنصر تحكم متصفح ويب وبرامج تعليمية.

ملاحظةملاحظة

ينطبق هذا القسم أيضا إلى Frameعنصر تحكم حيث أنه يستخدم WebBrowserللانتقال إلى محتوى HTML.

إذا كان WPF WebBrowserعنصر التحكم هو المستخدم باستضافة محتوى ويب غير موثوق به، تطبيقك يجب استخدام الثقة الجزئي AppDomainلمساعدتك في عزل تعليمات برمجية للتطبيق الخاص بك من المحتمل أن تكون ضارة HTML برنامج نصي للتعليمات البرمجية. Th هو هو صحيحاً خاصة إذا كان تطبيق الخاص بك هو التعامل مع برنامج نصي المستضاف باستخدام InvokeScriptالأسلوب و ObjectForScriptingخاصية. لمزيد من المعلومات، راجع نظرة عامة على الوظائف الإضافية لـ WPF.

إذا كان تطبيق يستخدم WPF WebBrowserطريقة أخرى لزيادة الأمان وتقليل الهجمات على عنصر تحكم، لتمكين ميزة إنترنت مستكشف عناصر التحكم. تكون عناصر التحكم ميزة الإضافات إلى إنترنت مستكشف تسمح administraإلىrs والمطورين إلى تكوين ميزات إنترنت مستكشف والتطبيقات التي تستضيف عنصر تحكم متصفح ويب ActiveX، الذي WPF WebBrowserwraps عنصر التحكم. ميزة عناصر التحكم يمكن تكوينها باستخدام CoInternetSetFeatureEnabled دالة أو بواسطة تغيير قيم الموجودة في السجل. ل المزيد من المعلومات حول عناصر تحكم الميزة، راجع مقدمة حول "عناصر التحكم ميزة" و عناصر التحكم ميزة إنترنت .

إذا كنت تقوم بتطوير تطبيق WPF مستقل يستخدم WPF WebBrowserعنصر التحكم، WPF تلقائياً بتمكين التالية ميزة عناصر التحكم الخاصة بالتطبيق الخاص بك.

ميزة عنصر تحكم

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

منذ هذه ميزة يتم ممكّن عناصر التحكم unconditionally، قد يكون ضعف تطبيق الثقة كاملة بتلك. في this حالة, if there غير محقق الأمان خطر for the specific تطبيق و the محتوى it هو hosting, the corresponding ميزة عنصر تحكم can be معطّل.

ميزة عناصر التحكم are applied بواسطة the عملية instantiating the متصفح ويب كائن ActiveX. Therefore, if you are creating a stand-alone تطبيق that can التنقل إلى غير موثوق به محتوى, you should seriously consider enabling إضافى ميزة عناصر التحكم.

ملاحظةملاحظة

This recommendation هو based تشغيل عام recommendations for MSHTML و SHDOCVW مضيف الأمان.For المزيد معلومات, see The MSHTML مضيف الأمان FAQ: Part I of II و The MSHTML مضيف الأمان FAQ: Part II of II.

للملف التنفيذي الخاص بك، يمكنك تمكين عناصر تحكم الميزة التالية بتعيين قيمة السجل إلى 1.

ميزة عنصر تحكم

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

For your تنفيذي, consider disabling the following ميزة عنصر تحكم بواسطة إعداد the السجل القيمة إلى 0.

ميزة عنصر تحكم

FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT

إذا قمت بتشغيل على الثقة الجزئي تطبيق مستعرض XAML (XBAP)يحتوي WPF WebBrowserالتحكم في Windows Internet Explorer، WPF استضافة عنصر تحكم متصفح ويب ActiveX في مسافة العنوان من إنترنت مستكشف عملية. منذ عنصر تحكم متصفح ويب ActiveX هو التي تتم استضافتها في برنامج Internet Explorerأيضا ممكّن عملية، وكافة عناصر التحكم ميزة لبرنامج إنترنت مستكشف لعنصر تحكم متصفح ويب ActiveX.

XBAPs التي تعمل في برنامج إنترنت مستكشف أيضا يحصل المستوى إضافي من الأمان مقارنة إلى التطبيقات المستقلة العادي. Th هو أمان إضافي هو نظراً لأن إنترنت مستكشف، ولذلك في متصفح ويب ActiveX التحكم، يعمل في الالوضع المحمي افتراضياً تشغيل Windows Vistaو نظام التشغيل Windows 7. للحصول على مزيد من المعلومات حول وضع محمي، راجع من Understوing و العمل في "مستكشف إنترنت وضع محمي".

ملاحظةملاحظة

إذا حاولت إلى تشغيل XBAP يحتوي على WPF WebBrowserالتحكم في Firefox، في منطقة إنترنت، SecurityExceptionسوف يتم طرح.Th هو هو بسبب نهج الأمان WPF.

تعطيل APTCA بشكل جزئي لتطبيقات العميل الموثوقة جزئيا

عند تثبيت التجميعات‬ المدارة في مخزن التجميع العمومي المؤقت (GAC) ، تصبح موثوق به ثقة كاملة لأن المستخدم يجب ان يوفر إذن صريح لتثبيتها. لأنها موثوق بها ثقة كاملة ، تستطيع فقط تطبيقات العميل الموثوق منها تماماً استخدامها. للسماح للتطبيقات الموثوق بها جزئيًا استخدامها فإنها يجب أن يتم وضع علامة مع AllowPartiallyTrustedCallersAttribute (APTCA). يجب وضع علامة علي التجميعات التي تم اختبارها لتكون آمنة للاستخدام في يئة عمل ذات ثقة جزئية فقط الي هذه السمة.

ومع ذلك، فمن الممكن للتجميع APTCA مواجه خطأ أمان بعد التثبيت في GAC. حالما يتم اكتشافها خلل أمان ، ينتج ناشرين التجميع تحديث أمني لإصلاح المشكلة على التثبيتات الموجودة و للحماية ضد عمليات التثبيت التي قد تحدث بعد اكتشاف المشكلة. خيار واحد عند التحديث لإلغاء تثبيت التجميع ، على الرغم من أن تلك قد تقطع تطبيقات العميل الأخرى الموثوق بها ثقة كاملة التي تستخدم التجميع.

WPFتوفر تقنية بواسطة التي يمكن معطّل تجميع APTCA موثوق به جزئياتطبيقات XBAPبدون إزالة تثبيت التجميع APTCA.

لتعطيل تجميع APTCA، تحتاج إلى إنشاء خاص المفتاح السجل:

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

فيما يلي مثال:

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

هذا المفتاح بإنشاء إدخال APTCA تجميع. وسيكون لك أيضا إلى قم بإنشاء القيمة في هذا المفتاح بتمكين أو تعطيل تجميع. فيما يلي التفاصيل القيمة:

  • اسم القيمة: aptca_flag.

  • نوع القيمة: REG_DWORD.

  • بيانات القيمة: 1 لتعطيل; 0 لتمكين.

إذا كان تجميع إلى يتم تعطيل لتطبيقات عميل موثوق بها جزئيا، يمكنك كتابة تحديثًا يقوم بإنشاء مفاتيح السجل والقيم.

ملاحظةملاحظة

الأساسي NET Framewor.التجميعات لا تتأثر بتعطيل بهذه الطريقة لأنها مطلوبة لإدارة التطبيقات إلى التشغيل.دعم للتجميعات APTCA dهوabling هو المستهدف أساسا لتطبيقات الجهات الأخرى.

سلوك إليه تحديد الصلاحيات ل XAML ملفات

لمحكمة XAMLترميز فقط ملفات XAML التي لا تعتمد تشغيل أي رمز من الخلف أو معالج حدث، أو تجميع الخاصة بالتطبيق. عندما أنجزتها XAMLملفات تم الانتقال إلى مباشرة من مستعرض، قم بتحميلها في الحماية الأمان استناداً إلى إذن منطقة إنترنت الافتراضي التعيين.

ومع ذلك، سلوك الأمان مختلفة عندما يتم انتقال الملفات XAML الحرة إما من NavigationWindow أو Frame في التطبيقات المستقلة.

في كلتا الحالتين، الملف XAML الغير محكم الذي يتم انتقاله ليرث الأذونات من التطبيق المضيف. ومع ذلك، قد يكون هذا السلوك غير مرغوب فيه من منظور الأمان بشكل عملي إذا كان الملف XAML غير المحكم قد تم إنشاءه بواسطة وحدة اما لا موثوق بها أو غير معروفة. ويعرف هذا النوع من المحتويات إلى المحتوى الخارجي و يمكن كلا Frame و NavigationWindow تكوين لعزله عندما يتم الانتقال اليه. يتم إنجاز العزل بواسطة اعداد خاصية الإعداد SandboxExternalContent بأنه صحيح،، كما هو مبين في الأمثلة التالية للحصول على Frame و 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>

بهذا الإعداد ، سيتم تحميل المحتوى الخارجي في عملية منفصلة عن العملية المستضيفة للتطبيق. Th هو عملية هو مقيد إلى التعيين permهوsion "منطقة إنترنت"، فاعلية هو olating الافتراضي من استضافة تطبيق وجهاز الكمبيوتر العميل.

ملاحظةملاحظة

تشغيل الرغم من التنقل إلى فقدان XAMLملفات أما من NavigationWindowأو Frameفي تطبيق مستقل هو تطبيق يستند إلى المستعرض WPF استضافة البنية الأساسية، والتي تتضمن عملية PresentationHost، ومستوى الأمان هو قليلاً أصغر من عند المحتوى هو تم تحميله مباشرة في برنامج إنترنت مستكشف تشغيل Windows Vistaو نظام التشغيل Windows 7(والذي سيكون لا يزال من خلال PresentationHost). Th هو هو تطبيق WPF مستقل باستخدام مستعرض ويب عدم توفر ميزة أمان "وضع محمي" إضافى من إنترنت مستكشف.

موارد لتطوير التطبيقات WPF يرقّي الأمان

فيما يلي بعض موارد الإضافية إلى المساعدة على تطوير WPFالتطبيقات التي تقوم بترقية الأمان:

المنطقة

المورد

تعليمات برمجية مُدارة

CAS

أمان رمز الوصول

ClickOnce

أمان ClickOnce والتوزيع

WPF

الأمان ذا الثقة الجزئية الخاص بWPF

راجع أيضًا:

المبادئ

الأمان ذا الثقة الجزئية الخاص بWPF

استراتيجية أمان WPF - أمان النظام الأساسي

استراتيجية أمان WPF - هندسة الأمان

أمان رمز الوصول

أمان ClickOnce والتوزيع

نظرة عامة على XAML (WPF)

موارد أخرى

أنماط و "إرشادات الأمان الممارسات" للتطبيقات .