Aracılığıyla paylaş


Meta Veriler Hakkında Güvenlik Konuları

Windows Communication Foundation'da (WCF) meta veri özelliklerini kullanırken, hizmet meta verilerini yayımlama, alma ve kullanmanın güvenlik etkilerini göz önünde bulundurun.

Meta Veriler Ne Zaman Yayımlanacak?

WCF hizmetleri varsayılan olarak meta verileri yayımlamaz. Bir WCF hizmetinin meta verilerini yayımlamak için hizmetinize meta veri uç noktaları ekleyerek meta veri yayımlamayı açıkça etkinleştirmeniz gerekir (bkz . Yayımlama Meta Verileri). Meta veri yayımlamayı devre dışı bırakmak hizmetinizin saldırı yüzeyini azaltır ve istenmeyen bilgilerin açığa çıkma riskini azaltır. Tüm hizmetler meta verileri yayımlamamalıdır. Meta verileri yayımlamak zorunda değilseniz, meta verileri kapalı bırakmayı göz önünde bulundurun. ServiceModel Meta Veri Yardımcı Programı Aracı'nı (Svcutil.exe) kullanarak meta verileri ve istemci kodunu doğrudan hizmet derlemelerinizden oluşturmaya devam edebilirsiniz. Meta verileri dışarı aktarmak için Svcutil.exe kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Derlenmiş Hizmet Kodundan Meta Verileri Dışarı Aktarmak için Svcutil.exe Kullanma.

Güvenli Bağlama Kullanarak Meta Verileri Yayımlama

WCF'nin sağladığı varsayılan meta veri bağlamaları güvenli değildir ve meta verilere anonim erişime izin verir. WCF hizmetinin yayımlamış olduğu hizmet meta verileri, hizmet hakkında ayrıntılı bir açıklama içerir ve kasıtlı olarak veya istemeden hassas bilgiler içerebilir. Örneğin, hizmet meta verileri, genel olarak yayınlanması amaçlanmamış altyapı işlemleri hakkında bilgi içerebilir. Hizmet meta verilerini yetkisiz erişime karşı korumak için meta veri uç noktanız için güvenli bir bağlama kullanabilirsiniz. Meta veri uç noktaları, meta verilerin güvenliğini sağlamak için Güvenli Yuva Katmanı (SSL) kullanabilen HTTP/GET isteklerine yanıt verir. Daha fazla bilgi için bkz . Nasıl yapılır: Meta Veri Uç Noktalarının Güvenliğini Sağlama.

Meta veri uç noktalarınızın güvenliğini sağlamak, istekte bulunanların kurcalama veya sahtekarlık riski olmadan hizmet meta verilerini güvenli bir şekilde alması için bir yol da sağlar.

Yalnızca Güvenilen Meta Verileri Kullanma

Hizmeti çağırmak için gereken çalışma zamanı bileşenlerini otomatik olarak oluşturmak için hizmet meta verilerini kullanabilirsiniz. Ayrıca, bir istemci uygulaması geliştirmek için tasarım zamanında veya bir istemcinin hizmeti çağırmak için kullandığı bağlamayı dinamik olarak güncelleştirmek için çalışma zamanında meta verileri de kullanabilirsiniz.

Hizmet meta verileri, güvenli olmayan bir şekilde alındığında kurcalanabilir veya sahte hale getirilebilir. Kurcalanmış meta veriler istemcinizi kötü amaçlı bir hizmete yönlendirebilir, güvenliği aşılmış güvenlik ayarları içerebilir veya kötü amaçlı XML yapıları içerebilir. Meta veri belgeleri büyük olabilir ve sıklıkla dosya sistemine kaydedilir. Kurcalama ve sahtekarlık durumlarına karşı koruma sağlamak için, kullanılabilir olduğunda hizmet meta verilerini istemek için güvenli bir bağlama kullanın.

Meta Verileri İşlemek için Kasa Teknikleri Kullanma

Hizmet meta verileri genellikle WS-MetadataExchange (MEX) gibi standartlaştırılmış protokoller kullanılarak ağ üzerinden bir hizmetten alınır. Birçok meta veri biçimi, ek meta verileri işaret etmeye yönelik başvuru mekanizmaları içerir. Bu MetadataExchangeClient tür, Web Hizmetleri Açıklama Dili (WSDL) belgeleri, XML Şeması ve MEX belgelerinde sizin için başvuruları otomatik olarak işler. Alınan meta verilerden oluşturulan nesnenin MetadataSet boyutu, kullanılan örneğin değeriyle MetadataExchangeClient ve MaxReceivedMessageSize bu örnek tarafından kullanılan bağlamanın değeriyle MetadataExchangeClient doğrudan orantılıdırMaximumResolvedReferences. Bu kotaları senaryonuz tarafından dikte edilen uygun değerlere ayarlayın.

WCF'de hizmet meta verileri XML olarak işlenir. XML belgelerini işlerken, uygulamalar kendilerini kötü amaçlı XML yapılarına karşı korumalıdır. XML'yi XmlDictionaryReader işlerken uygun kotalarla kullanın ve özelliğini olarak ProhibitayarlayınDtdProcessing.

WCF'deki meta veri sistemi genişletilebilir ve meta veri uzantıları uygulama yapılandırma dosyanıza kaydedilebilir (bkz . Meta Veri Sistemini Genişletme). Meta veri uzantıları rastgele kod çalıştırabileceğinden, uygulama yapılandırma dosyanızı uygun erişim denetim listeleri (ACL' ler) ile korumanız ve yalnızca güvenilen meta veri uzantısı uygulamalarını kaydetmeniz gerekir.

Oluşturulan İstemcileri Doğrulama

Güvenilir olmayan bir kaynaktan alınan meta verilerden istemci kodu oluştururken, oluşturulan istemcinin istemci uygulamaları güvenlik ilkelerinize uygun olduğundan emin olmak için oluşturulan istemci kodunu doğrulayın. İstemci bağlamanızdaki ayarları denetlemek veya araçlar tarafından oluşturulan kodu görsel olarak incelemek için doğrulama davranışı kullanabilirsiniz. Davranışları doğrulayan bir istemcinin nasıl uygulandığını gösteren bir örnek için bkz . İstemci Doğrulama.

Uygulama Yapılandırma Dosyalarını Koruma

Hizmetin uygulama yapılandırma dosyası meta verilerin nasıl ve nasıl yayımlandığını denetleyebilir. Bir saldırganın bu ayarları değiştiremediğinden emin olmak için uygulama yapılandırma dosyasını uygun erişim denetim listeleriyle (ACL) korumak iyi bir fikirdir.

Ayrıca bkz.