Megosztás a következőn keresztül:


Biztonsági szempontok metaadatokkal

A Windows Communication Foundation (WCF) metaadat-funkcióinak használatakor vegye figyelembe a szolgáltatás metaadatainak közzétételének, lekérésének és használatának biztonsági következményeit.

Mikor kell közzétenni a metaadatokat?

A WCF-szolgáltatások alapértelmezés szerint nem tesznek közzé metaadatokat. Egy WCF-szolgáltatás metaadatainak közzétételéhez kifejezetten engedélyeznie kell a metaadatok közzétételét, ha metaadat-végpontokat ad hozzá a szolgáltatáshoz (lásd : Metaadatok közzététele). Ha letiltja a metaadatok közzétételét, azzal csökkenti a szolgáltatás támadási felületét, és csökkenti a véletlen információfeltárás kockázatát. Nem minden szolgáltatásnak kell közzétennie a metaadatokat. Ha nem kell metaadatokat közzétennie, érdemes kikapcsolni. Vegye figyelembe, hogy a ServiceModel Metadata segédprogrammal (Svcutil.exe) továbbra is létrehozhat metaadatokat és ügyfélkódot közvetlenül a szolgáltatásszerelvényekből. Az Svcutil.exe metaadatok exportálásával kapcsolatos további információkért lásd : How to: Use Svcutil.exe to Export Metadata from Compiled Service Code.

Metaadatok közzététele biztonságos kötés használatával

A WCF által biztosított alapértelmezett metaadat-kötések nem biztonságosak, és névtelen hozzáférést tesznek lehetővé a metaadatokhoz. A WCF-szolgáltatás által közzétett szolgáltatás metaadatai részletes leírást tartalmaznak a szolgáltatásról, és szándékosan vagy véletlenül bizalmas információkat tartalmazhatnak. A szolgáltatás metaadatai például tartalmazhatnak olyan információkat az infrastruktúra-műveletekről, amelyeket nem nyilvánosan akartak közvetíteni. A szolgáltatás metaadatainak jogosulatlan hozzáféréssel szembeni védelme érdekében használhat biztonságos kötést a metaadat-végponthoz. A metaadat-végpontok olyan HTTP-/GET-kérelmekre válaszolnak, amelyek a metaadatok védelmére használhatják a Secure Sockets Layer (SSL) protokollt. További információt a Metaadat-végpontok védelme című témakörben talál.

A metaadat-végpontok biztonságossá tétele lehetővé teszi a kérelmezők számára a szolgáltatás metaadatainak biztonságos lekérését anélkül, hogy illetéktelenül módosítanák vagy hamisítást kockáztatnak.

Csak megbízható metaadatok használata

A szolgáltatás metaadataival automatikusan létrehozhatja a szolgáltatás hívásához szükséges futásidejű összetevőket. A metaadatokat a tervezéskor is használhatja egy ügyfélalkalmazás fejlesztéséhez, vagy futtatáskor dinamikusan frissítheti azt a kötést, amelyet az ügyfél a szolgáltatás hívásához használ.

A szolgáltatás metaadatai illetéktelenül módosíthatók vagy hamisíthatók, ha nem biztonságos módon kérik le. A módosított metaadatok átirányíthatják az ügyfelet egy rosszindulatú szolgáltatásba, biztonsági beállításokat tartalmazhatnak, vagy rosszindulatú XML-struktúrákat tartalmazhatnak. A metaadat-dokumentumok nagy méretűek lehetnek, és gyakran a fájlrendszerbe vannak mentve. Az illetéktelen módosítás és a hamisítás elleni védelem érdekében használjon biztonságos kötést a szolgáltatás metaadatainak lekéréséhez, ha elérhető.

Metaadatok feldolgozására szolgáló Széf technikák használata

A szolgáltatás metaadatait gyakran lekéri egy szolgáltatásból egy hálózaton keresztül szabványosított protokollokkal, például WS-MetadataExchange (MEX) használatával. Számos metaadatformátum tartalmaz hivatkozási mechanizmusokat a további metaadatokra való rámutatáshoz. A MetadataExchangeClient típus automatikusan feldolgozza a Web Services Description Language (WSDL) dokumentumaiban, az XML-sémákban és a MEX-dokumentumokban szereplő hivatkozásokat. A lekért metaadatokból létrehozott objektum mérete MetadataSet közvetlenül arányos a MetadataExchangeClientMaximumResolvedReferences használt példány értékével és az MaxReceivedMessageSize adott MetadataExchangeClient példány által használt kötés értékével. Állítsa be ezeket a kvótákat a forgatókönyv által diktált megfelelő értékekre.

A WCF-ben a szolgáltatás metaadatai XML-ként lesznek feldolgozva. XML-dokumentumok feldolgozásakor az alkalmazásoknak védeniük kell magukat a rosszindulatú XML-struktúrák ellen. Az XML feldolgozásakor használja a XmlDictionaryReader megfelelő kvótákat, és állítsa a tulajdonságot a DtdProcessing következőre Prohibit: .

A WCF metaadatrendszere bővíthető, és a metaadat-bővítmények regisztrálhatók az alkalmazáskonfigurációs fájlban (lásd : Metaadatrendszer kiterjesztése). A metaadat-bővítmények tetszőleges kódot futtathatnak, ezért megfelelő hozzáférés-vezérlési listákkal (ACL-ekkel) kell védenie az alkalmazáskonfigurációs fájlt, és csak megbízható metaadat-bővítmény-implementációkat kell regisztrálnia.

Generált ügyfelek érvényesítése

Ha nem megbízható forrásból lekért metaadatokból hoz létre ügyfélkódot, ellenőrizze a létrehozott ügyfélkódot, hogy a létrehozott ügyfél megfeleljen az ügyfélalkalmazások biztonsági szabályzatainak. Érvényesítési viselkedéssel ellenőrizheti az ügyfélkötés beállításait, vagy vizuálisan megvizsgálhatja az eszközök által létrehozott kódot. A viselkedést érvényesítő ügyfél implementálására vonatkozó példa: Ügyfélérvényesítés.

Alkalmazáskonfigurációs fájlok védelme

A szolgáltatás alkalmazáskonfigurációs fájlja szabályozhatja a metaadatok közzétételének módját és működését. Célszerű az alkalmazáskonfigurációs fájlt megfelelő hozzáférés-vezérlési listákkal (ACL-ekkel) védeni, hogy a támadók ne módosíthassák ezeket a beállításokat.

Lásd még