Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Windows Presentation Foundation (WPF) önálló és böngésző által üzemeltetett alkalmazások fejlesztésekor figyelembe kell vennie a biztonsági modellt. A WPF önálló alkalmazásai korlátlan engedélyekkel (CASFullTrust engedélykészlettel) futnak, függetlenül attól, hogy a Windows Installer (.msi), az XCopy vagy a ClickOnce használatával lett-e üzembe helyezve. A részleges megbízhatóságú, különálló WPF-alkalmazások ClickOnce-nal való üzembe helyezése nem támogatott. A teljes megbízhatóságú gazdagép-alkalmazás azonban részleges megbízhatóságú AppDomain-t hozhat létre a .NET-keretrendszer bővítmény-modell segítségével. További információ: WPF Add-Ins Áttekintés.
A WPF böngésző által üzemeltetett alkalmazásokat a Windows Internet Explorer vagy a Firefox üzemelteti, és lehetnek XAML böngészőalkalmazások (XBAP-k) vagy laza bővíthető alkalmazásjelölő nyelvi (XAML) dokumentumok. További információt a WPF XAML böngészőalkalmazások áttekintési
Figyelmeztetés
Az XBAP-k működéséhez régi böngészőkre van szükség, például az Internet Explorerre és a Firefox régi verzióira. Ezek a régebbi böngészők általában nem támogatottak a Windows 10-ben és a Windows 11-ben. A modern böngészők már nem támogatják az XBAP-alkalmazásokhoz szükséges technológiát a biztonsági kockázatok miatt. Az XBAP-ket engedélyező beépülő modulok már nem támogatottak. További információ: A WPF böngésző által üzemeltetett alkalmazásokkal (XBAP) kapcsolatos gyakori kérdések.
A WPF böngésző által üzemeltetett alkalmazások alapértelmezés szerint részleges megbízhatósági biztonsági tesztkörnyezetben futnak, amely az alapértelmezett CASinternetes zónaengedély-készletre korlátozódik. Ez hatékonyan elkülöníti a WPF böngésző által üzemeltetett alkalmazásokat az ügyfélszámítógéptől ugyanúgy, ahogyan a tipikus webalkalmazások elkülönítését várná. Az XBAP az üzembe helyezési URL biztonsági zónájától és az ügyfél biztonsági konfigurációjától függően akár teljes megbízhatósági szintű jogosultságokat is emelhet. További információ: WPF részleges biztonsági megbízhatóság.
Ez a témakör a Windows Presentation Foundation (WPF) önálló és böngésző által üzemeltetett alkalmazások biztonsági modelljét ismerteti.
Ez a témakör a következő szakaszokat tartalmazza:
APTCA-szerelvények letiltása részben megbízható ügyfélalkalmazásokhoz
A biztonságot elősegítő WPF-alkalmazások fejlesztéséhez szükséges erőforrások
Biztonságos navigáció
Az XBAP-k esetében a WPF kétféle navigációs típust különböztet meg: az alkalmazást és a böngészőt.
alkalmazásnavigációs egy böngésző által üzemeltetett alkalmazás tartalomelemei közötti navigálás. Böngésző navigáció az a navigáció, amely a böngésző saját tartalmát és helyének URL-címét módosítja. Az alkalmazásnavigáció (általában XAML) és a böngészőnavigáció (általában HTML) közötti kapcsolat az alábbi ábrán látható:
Az XBAP számára biztonságosnak ítélt tartalomtípust elsősorban az határozza meg, hogy az alkalmazásnavigáció vagy a böngészőnavigáció van-e használatban.
Alkalmazásnavigációs biztonság
Az alkalmazásnavigáció akkor tekinthető biztonságosnak, ha egy csomag URI-jával azonosítható, amely négy tartalomtípust támogat:
| Tartalomtípus | Leírás | Példa URI-ra |
|---|---|---|
| Erőforrás | A projekthez erőforrás-típusú buildként hozzáadott fájlok. | pack://application:,,,/MyResourceFile.xaml |
| Tartalom | A projekthez hozzáadott fájlok Tartalombuild típusával. | pack://application:,,,/MyContentFile.xaml |
| Származási hely | A projekthez hozzáadott fájlok olyan buildtípussal rendelkeznek, amely Nincs. | pack://siteoforigin:,,,/MySiteOfOriginFile.xaml |
| Alkalmazáskód | Olyan XAML-erőforrások, amelyek mögött lefordított kód áll. -vagy- A projekthez hozzáadott XAML-fájlok, amelyek Pagebuildtípusúak. |
pack://application:,,,/MyResourceFile
.xaml
|
Megjegyzés:
További információ az alkalmazásadatfájlokról és a csomag URI-jairól: WPF-alkalmazáserőforrás, -tartalom és adatfájlok.
Az ilyen tartalomtípusok fájljaira a felhasználó vagy programozott módon navigálhat:
Felhasználói navigáció. A felhasználó egy Hyperlink elemre kattintva navigál.
programozott navigáció. Az alkalmazás a felhasználó bevonása nélkül navigál, például a NavigationWindow.Source tulajdonság beállításával.
Böngésző navigációs biztonsága
A böngésző navigációja csak a következő feltételek mellett tekinthető biztonságosnak:
Felhasználói navigáció. A felhasználó úgy navigál, hogy rákattint egy Hyperlink elemre, amely a fő NavigationWindow-en belül van, nem egy beágyazott Frame-ben.
zóna. A navigálás alatt álló tartalom az interneten vagy a helyi intraneten található.
Protokoll. A használt protokoll vagy http, https, file, vagy mailto.
Ha egy XBAP olyan módon próbál meg navigálni a tartalomra, amely nem felel meg ezeknek a feltételeknek, a rendszer SecurityException dob.
Webböngészési szoftver biztonsági beállításai
A számítógép biztonsági beállításai határozzák meg, hogy a webböngésző szoftverek milyen hozzáférést kapnak. A webböngésző szoftver minden olyan alkalmazást vagy összetevőt tartalmaz, amely a WinINet vagy UrlMon API-kat használ, beleértve az Internet Explorert és a PresentationHost.exe.
Az Internet Explorer olyan mechanizmust biztosít, amellyel konfigurálhatja az Internet Explorer által vagy az Internet Explorerből végrehajtható funkciókat, beleértve a következőket:
.NET Framework-reliant összetevők
ActiveX-vezérlők és beépülő modulok
Letöltések
Szkriptelés
Felhasználói hitelesítés
Az ily módon biztonságosan biztosítható funkciók gyűjteménye zónánként van konfigurálva az internetes, intranetes, megbízható helyekés korlátozott helyek zónákhoz. Az alábbi lépések a biztonsági beállítások konfigurálását ismertetik:
Nyissa meg Vezérlőpult.
Kattintson Hálózati és internetes, majd az Internetbeállításokelemre.
Megjelenik az Internetbeállítások párbeszédpanel.
A Biztonsági lapon válassza ki azt a zónát, amelynél konfigurálja a biztonsági beállításokat.
Kattintson az Egyéni szint gombra.
Megjelenik a Biztonsági beállítások párbeszédpanel, és konfigurálhatja a kijelölt zóna biztonsági beállításait.
Megjegyzés:
Az Internet Explorerből is elérheti az Internetbeállítások párbeszédpanelt. Kattintson az Eszközök, majd az Internetbeállításokelemre.
A Windows Internet Explorer 7-től kezdődően a következő biztonsági beállítások jelennek meg kifejezetten a .NET-keretrendszerhez:
Laza XAML. Meghatározza, hogy az Internet Explorer képes-e XAML-fájlokra navigálni és nem biztonságos XAML-fájlokat megnyitni. (Engedélyezés, letiltás és parancssori beállítások).
XAML böngészőalkalmazások. Azt szabályozza, hogy az Internet Explorer képes-e az XBAP-kre navigálni és futtatni. (Engedélyezés, letiltás és parancssori beállítások).
Alapértelmezés szerint ezek a beállítások engedélyezve vannak az internetes, helyi intranetesés megbízható helyek zónákhoz, és le vannak tiltva a korlátozott helyek zónában.
Biztonsággal kapcsolatos WPF-beállításjegyzék-beállítások
Az internetbeállításokon keresztül elérhető biztonsági beállítások mellett a következő beállításjegyzék-értékek érhetők el számos biztonsági szempontból érzékeny WPF-funkció szelektív blokkolásához. Az értékek a következő kulcs alatt vannak definiálva:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Features
Az alábbi táblázat a beállítható értékeket sorolja fel.
| Érték neve | Érték típusa | Értékadatok |
|---|---|---|
| XBAP letiltása | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| LooseXamlDisallow | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| Böngésző letiltása | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| MediaAudioDisallow | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| MediaKépTiltás | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| MédiaVideóTiltás | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
| ScriptInteropDisallow | REG_DWORD | 1 a tiltáshoz; 0 az engedélyezéshez. |
WebBrowser vezérlő és funkcióvezérlők
A WPF WebBrowser vezérlő használható webes tartalmak tárolására. A WPF WebBrowser vezérlő becsomagolja a mögöttes WebBrowser ActiveX-vezérlőt. A WPF támogatást nyújt az alkalmazás biztonságossá tételéhez, amikor a WPF WebBrowser vezérlőt használja a nem megbízható webes tartalmak üzemeltetéséhez. Egyes biztonsági funkciókat azonban közvetlenül az alkalmazásoknak kell alkalmazniuk a WebBrowser vezérlő használatával. További információ a WebBrowser ActiveX-vezérlőről: WebBrowser vezérlő áttekintése és oktatóanyagai.
Megjegyzés:
Ez a szakasz a Frame vezérlőre is vonatkozik, mivel használja a WebBrowser-et a HTML-tartalomhoz való navigálásra.
Ha a WPF WebBrowser vezérlőelem nem megbízható webes tartalmak tárolására szolgál, az alkalmazásnak részleges megbízhatósági AppDomain kell használnia, hogy az alkalmazás kódját elszigetelje a potenciálisan rosszindulatú HTML-szkriptkódtól. Ez különösen akkor igaz, ha az alkalmazás a InvokeScript metódussal és a ObjectForScripting tulajdonsággal kommunikál az üzemeltetett szkripttel. További információ: WPF Add-Ins Áttekintés.
Ha az alkalmazás a WPF WebBrowser vezérlőt használja, a biztonság növelésének és a támadások mérséklésének másik módja az Internet Explorer funkcióvezérlőinek engedélyezése. A funkcióvezérlők olyan kiegészítések az Internet Explorerhez, amelyek lehetővé teszik a rendszergazdáknak és fejlesztőknek, hogy konfigurálják az Internet Explorer és a WebBrowser ActiveX vezérlőt futtató alkalmazások funkcióit, amelyeket a WPF WebBrowser vezérlő körbefut. A funkcióvezérlők a CoInternetSetFeatureEnabled függvénnyel vagy a beállításjegyzékben lévő értékek módosításával konfigurálhatók. A funkcióvezérlőkről további információt A funkcióvezérlők és internetfunkció-vezérlőkcímű témakörben talál.
Ha önálló WPF-alkalmazást fejleszt, amely a WPF WebBrowser vezérlőt használja, a WPF automatikusan engedélyezi az alkalmazás következő funkcióvezérlőinek használatát.
| Funkcióvezérlő |
|---|
| FUNKCIÓ_MIME_KEZELÉS |
| MIME_típus_szagolás (FEATURE_MIME_SNIFFING) |
| FUNKCIÓ_OBJEKTUM_TÁRHELYEZÉS |
| FEATURE_SAFE_BINDTOOBJECT |
| JELLEMZŐ_ABLAK_KORLÁTOZÁSOK |
| JELLEMZŐ_ZÓNA_MAGASSÁG |
| FUNKCIÓ_KORLÁTOZÁS_FÁJLLEHÚZÁS |
| FEATURE_RESTRICT_ACTIVEXINSTALL |
| FUNKCIÓ_BŐVÍTMÉNY_KEZELÉS |
| FÜGGVÉNY_HTTP_FELHASZNÁLÓNÉV_JELSZÓ_LETILTÁS |
| BIZTONSÁGI SÁV FUNKCIÓ |
| FEATURE_UNC_SAVEDFILECHECK |
| FUNKCIÓ_NAVIGÁCIÓ_URL_ELLENŐRZÉS |
| A TELNET protokoll letiltásának funkciója |
| WEBÜZENET_POPUPKEZELÉS_JELLEMZŐ |
| FUNKCIÓ_KAPCSOLD_KI_A_HAGYOMÁNYOS_TÖMÖRÍTÉST |
| FEATURE_SSLUX |
Mivel ezek a funkcióvezérlők feltétel nélkül engedélyezve vannak, a teljes megbízhatóságú alkalmazásokat ronthatják. Ebben az esetben, ha nincs biztonsági kockázat az adott alkalmazásra és az általa üzemeltetett tartalomra vonatkozóan, a megfelelő funkcióvezérlő le lehet tiltani.
A funkcióvezérlőket a WebBrowser ActiveX objektumot példányosító folyamat alkalmazza. Ezért ha önálló alkalmazást hoz létre, amely nem megbízható tartalmakra tud navigálni, komolyan fontolóra kell vennie további funkcióvezérlők engedélyezését.
Megjegyzés:
Ez az ajánlás az MSHTML és az SHDOCVW gazdagép biztonságára vonatkozó általános ajánlásokon alapul. További információ: Az MSHTML gazdagép biztonsága – GYIK: I. rész és Az MSHTML gazdagép biztonsága – GYIK: II. rész.
A végrehajtható fájl esetében fontolja meg a következő funkcióvezérlők engedélyezését a beállításjegyzék értékének 1 értékre állításával.
| Funkcióvezérlő |
|---|
| FEATURE_ACTIVEX_HASZNOSÍTÁSFELISMERÉS |
| FEATURE_BLOCK_LMZ_IMG |
| FEATURE_BLOCK_LMZ_OBJECT |
| FEATURE_BLOCK_LMZ_SCRIPT |
| FEATURE_RESTRICT_RES_TO_LMZ |
| FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7 |
| FUNKCIÓ_APP_PROTOKOLL_FIGYELMEZTETŐ_PÁRBESZÉDABLAK_MEGAJELENÍTÉSE |
| FEATURE_LOCALMACHINE_LOCKDOWN (HelyiGépZárolás) |
| JELLEMZŐ_KÉNYSZER_CÍM_ÉS_ÁLLAPOT |
| JELLEMZŐ_KORLÁTOZOTT_ZÓNA_AMA_JELENSÉG_ESHETÉLÉBÉN_HOGY_A_FÁJL_NEM_TALÁLHATÓ |
A végrehajtható fájl esetében fontolja meg a következő funkcióvezérlés letiltását a beállításjegyzék értékének 0 értékre állításával.
| Funkcióvezérlő |
|---|
| FUNKCIÓ_SCRIPT_BEILLESZTÉS_URL_MŰVELET_HA_FIGYELMEZTETÉS |
Ha egy részleges megbízhatóságú XAML böngészőalkalmazást (XBAP) futtat, amely egy WPF WebBrowser vezérlőt tartalmaz a Windows Internet Explorerben, a WPF a WebBrowser ActiveX vezérlőt üzemelteti az Internet Explorer folyamat címterében. Mivel a WebBrowser ActiveX-vezérlőt az Internet Explorer folyamat üzemelteti, az Internet Explorer összes funkcióvezérlője a WebBrowser ActiveX-vezérlőhöz is engedélyezve van.
Az Internet Explorerben futó XBAP-k a normál különálló alkalmazásokhoz képest további biztonsági szintet is kapnak. Ennek a további biztonságnak az az oka, hogy az Internet Explorer, és ezért a WebBrowser ActiveX vezérlő alapértelmezés szerint védett módban fut Windows Vista és Windows 7 rendszeren. További információ a védett módról: Az Internet Explorerismertetése és használata védett módban.
Megjegyzés:
Ha olyan XBAP-t próbál futtatni, amely tartalmaz egy WPF WebBrowser vezérlőt a Firefoxban, míg az internetzónában egy SecurityException fog dobni. Ez a WPF biztonsági szabályzatának köszönhető.
APTCA-szerelvények letiltása részben megbízható ügyfélalkalmazások számára
Ha a felügyelt szerelvényeket a globális szerelvény-gyorsítótárba (GAC) telepítik, azok teljes mértékben megbízhatóvá válnak, mert a felhasználónak explicit engedélyt kell adnia a telepítésükre. Mivel teljes mértékben megbízhatóak, csak a teljes mértékben megbízható felügyelt ügyfélalkalmazások használhatják őket. A részben megbízható alkalmazások használatának engedélyezéséhez meg kell jelölni őket a AllowPartiallyTrustedCallersAttribute (APTCA) címkével. Ezzel az attribútummal csak azokat a szerelvényeket kell megjelölni, amelyeknél a részleges megbízhatósági állapotban végzett végrehajtás biztonságosnak lett tesztelve.
Az APTCA-szerelvény azonban biztonsági hibát mutathat a GAC-ba való telepítés után. A biztonsági hiba felfedezése után a szerelvény-közzétevők biztonsági frissítést készíthetnek a meglévő telepítésekkel kapcsolatos probléma megoldásához, valamint a probléma felderítése után esetlegesen előforduló telepítésekkel szembeni védelemhez. A frissítés egyik lehetősége a szerelvény eltávolítása, bár ez megszakíthatja a szerelvényt használó többi teljesen megbízható ügyfélalkalmazást.
A WPF olyan mechanizmust biztosít, amellyel az APTCA-szerelvény az APTCA-szerelvény eltávolítása nélkül letiltható a részben megbízható XBAP-k esetében.
Az APTCA-szerelvény letiltásához létre kell hoznia egy speciális beállításkulcsot:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\<AssemblyFullName>, FileVersion=<AssemblyFileVersion>
Az alábbiakban egy példa látható:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\aptcagac, Version=1.0.0.0, Culture=neutral, PublicKeyToken=215e3ac809a0fea7, FileVersion=1.0.0.0
Ez a kulcs létrehoz egy bejegyzést az APTCA-szerelvényhez. Ebben a kulcsban olyan értéket is létre kell hoznia, amely engedélyezi vagy letiltja a szerelvényt. Az érték részletei a következők:
Érték neve: APTCA_FLAG.
Értéktípus: REG_DWORD.
Értékadatok: 1 a letiltáshoz; 0 az engedélyezéshez.
Ha egy szerelvényt le kell tiltani a részben megbízható ügyfélalkalmazások esetében, írhat egy frissítést, amely létrehozza a beállításkulcsot és az értéket.
Megjegyzés:
Az alapvető .NET-keretrendszer-szerelvényeket nem érinti a letiltásuk, mert a felügyelt alkalmazások futtatásához szükségesek. Az APTCA-szerelvények letiltását elsősorban külső alkalmazások támogatják.
Tesztkörnyezet viselkedése laza XAML-fájlok esetén
A laza XAML-fájlok olyan csak jelöléses XAML-fájlok, amelyek nem függnek a kód mögötti fájltól, az eseménykezelőtől vagy az alkalmazásspecifikus assemblytől. Amikor az önálló XAML-fájlokat közvetlenül a böngészőből nyitják meg, a rendszer az alapértelmezett internetes zóna engedélyei alapján egy biztonsági tesztkörnyezetbe tölti be őket.
A biztonsági viselkedés azonban eltér, amikor laza XAML-fájlokat különálló alkalmazáson belüli NavigationWindow vagy Frame navigálás útján érnek el.
Mindkét esetben a laza XAML-fájl, amelyhez navigálunk, a gazdaalkalmazás engedélyeit örökli. Ez a viselkedés azonban biztonsági szempontból nemkívánatos lehet, különösen akkor, ha egy laza XAML-fájlt olyan entitás hozott létre, amely nem megbízható vagy ismeretlen. Ez a tartalomtípus külső tartalomnéven ismert, és a Frame és a NavigationWindow is konfigurálható úgy, hogy elkülönítse azt a navigáláskor. Az elkülönítés a SandboxExternalContent tulajdonság igaz értékre állításával érhető el, ahogy az Frame és NavigationWindowalábbi példáiban is látható:
<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>
Ezzel a beállítással a külső tartalom egy olyan folyamatba lesz betöltve, amely eltér az alkalmazást üzemeltető folyamattól. Ez a folyamat az alapértelmezett internetzóna-engedélykészletre korlátozódik, és gyakorlatilag el van különítve az üzemeltetési alkalmazástól és az ügyfélszámítógéptől.
Megjegyzés:
Annak ellenére, hogy az önálló alkalmazásokban lévő NavigationWindow vagy Frame laza XAML-fájlokra való navigálás a WPF böngésző üzemeltetési infrastruktúráján alapul, beleértve a PresentationHost folyamatot is, a biztonsági szint valamivel kisebb, mint amikor a tartalmat közvetlenül az Internet Explorerbe töltik be Windows Vista és Windows 7 rendszeren (ami még mindig a PresentationHoston keresztül történik). Ennek az az oka, hogy egy webböngészőt használó különálló WPF-alkalmazás nem biztosítja az Internet Explorer további védett módú biztonsági funkcióját.
A biztonságot elősegítő WPF-alkalmazások fejlesztéséhez szükséges erőforrások
Az alábbiakban további forrásokat találhat a biztonságot támogató WPF-alkalmazások fejlesztéséhez:
| Terület | Erőforrás |
|---|---|
| Felügyelt kód | minták és eljárások – Biztonsági útmutató alkalmazásokhoz |
| CAS | Kódhozzáférési biztonság |
| ClickOnce | ClickOnce biztonság és telepítés |
| WPF (Windows Presentation Foundation) | WPF részleges megbízhatósági biztonság |
Lásd még
.NET Desktop feedback