Sdílet prostřednictvím


Informace o zabezpečení pro metadata

Při používání funkcí metadat ve Windows Communication Foundation (WCF) zvažte vliv na zabezpečení publikování, načítání a používání metadat služby.

Kdy publikovat metadata

Služby WCF ve výchozím nastavení nepublikují metadata. Pokud chcete publikovat metadata pro službu WCF, musíte explicitně povolit publikování metadat přidáním koncových bodů metadat do služby (viz Metadata publikování). Ponechání neaktivních publikování metadat snižuje prostor pro útok pro vaši službu a snižuje riziko neúmyslného zpřístupnění informací. Ne všechny služby musí publikovat metadata. Pokud metadata publikovat nemusíte, zvažte jeho vypnutí. Mějte na paměti, že metadata a kód klienta můžete dál generovat přímo ze sestavení služby pomocí nástroje ServiceModel Metadata Utility (Svcutil.exe). Další informace o použití Svcutil.exe k exportu metadat naleznete v tématu Postupy: Použití Svcutil.exe k exportu metadat z kompilovaného kódu služby.

Publikování metadat pomocí zabezpečené vazby

Výchozí vazby metadat, které wcf poskytuje, nejsou zabezpečené a umožňují anonymní přístup k metadatům. Metadata služby, která služba WCF publikuje, obsahuje podrobný popis služby a může záměrně nebo neúmyslně obsahovat citlivé informace. Metadata služby mohou například obsahovat informace o operacích infrastruktury, které nebyly určeny k veřejnému vysílání. Pokud chcete chránit metadata služby před neoprávněným přístupem, můžete pro koncový bod metadat použít zabezpečenou vazbu. Koncové body metadat reagují na požadavky HTTP/GET, které můžou k zabezpečení metadat používat protokol SSL (Secure Sockets Layer). Další informace najdete v tématu Postupy: Zabezpečení koncových bodů metadat.

Zabezpečení koncových bodů metadat také poskytuje žadatelům způsob, jak bezpečně načítat metadata služby bez rizika manipulace nebo falšování identity.

Použití pouze důvěryhodných metadat

Metadata služby můžete použít k automatickému vytvoření komponent za běhu potřebných k volání služby. Metadata můžete také použít při návrhu k vývoji klientské aplikace nebo za běhu k dynamické aktualizaci vazby, kterou klient používá k volání služby.

Metadata služby můžou být manipulována nebo falšována při načítání nezabezpečeným způsobem. Zfalšovaná metadata můžou přesměrovat klienta na škodlivou službu, obsahovat ohrožená nastavení zabezpečení nebo obsahovat škodlivé struktury XML. Dokumenty metadat můžou být velké a často se ukládají do systému souborů. Pokud chcete chránit před falšováním a falšováním identity, použijte zabezpečenou vazbu k vyžádání metadat služby, pokud je k dispozici.

Použití technik Sejf pro zpracování metadat

Metadata služby se často načítají ze služby přes síť pomocí standardizovaných protokolů, jako je WS-MetadataExchange (MEX). Mnoho formátů metadat zahrnuje odkazovací mechanismy pro odkazování na další metadata. Typ MetadataExchangeClient automaticky zpracovává odkazy za vás v dokumentech WSDL (Web Services Description Language), schématu XML a dokumentech MEX. Velikost objektu MetadataSet vytvořeného z načtených metadat je přímo úměrná MaximumResolvedReferences hodnotě pro MetadataExchangeClient instanci, která se používá, a MaxReceivedMessageSize hodnotu vazby používané danou MetadataExchangeClient instancí. Nastavte tyto kvóty na odpovídající hodnoty podle vašeho scénáře.

Ve WCF se metadata služby zpracovávají jako XML. Při zpracování dokumentů XML by se aplikace měly chránit před škodlivými strukturami XML. XmlDictionaryReader Při zpracování XML použijte odpovídající kvóty a také nastavte DtdProcessing vlastnost na Prohibit.

Systém metadat v WCF je rozšiřitelný a rozšíření metadat lze zaregistrovat v konfiguračním souboru aplikace (viz Rozšíření systému metadat). Rozšíření metadat můžou spouštět libovolný kód, takže byste měli chránit konfigurační soubor aplikace pomocí příslušných seznamů řízení přístupu (ACL) a registrovat pouze implementace důvěryhodných rozšíření metadat.

Ověřování vygenerovaných klientů

Při generování kódu klienta z metadat načtených ze zdroje, který není důvěryhodný, ověřte vygenerovaný klientský kód, aby se zajistilo, že vygenerovaný klient odpovídá zásadám zabezpečení klientských aplikací. Pomocí ověřování chování můžete zkontrolovat nastavení vazby klienta nebo vizuálně zkontrolovat kód vygenerovaný nástroji. Příklad implementace klienta, který ověřuje chování, naleznete v tématu Ověření klienta.

Ochrana konfiguračních souborů aplikace

Konfigurační soubor aplikace služby může řídit, jak a jestli se publikuje metadata. Je vhodné chránit konfigurační soubor aplikace pomocí příslušných seznamů řízení přístupu (ACL), aby útočník nemohl takové nastavení změnit.

Viz také