Aracılığıyla paylaş


İzleme için Güvenlikle İlgili Noktalar ve Faydalı İpuçları

Bu konu başlığında, WebHost kullanırken hassas bilgileri kullanıma sunulmaktan nasıl koruyabileceğiniz ve yararlı ipuçları açıklanmaktadır.

WebHost ile Özel İzleme Dinleyicisi Kullanma

Kendi izleme dinleyicinizi yazıyorsanız, Web'de barındırılan bir hizmet söz konusu olduğunda izlemelerin kaybolabileceği olasılığını bilmeniz gerekir. WebHost geri dönüşüme geçtiğinde, yinelenen öğe devralırken canlı işlemi kapatır. Ancak, iki işlemin bir süre için aynı kaynağa erişmesi gerekir ve bu da dinleyici türüne bağlıdır. Bu durumda, ikinci XmlWriterTraceListener işlem için yeni bir izleme dosyası oluşturur; Windows olay izlemesi aynı oturumdaki birden çok işlemi yönetir ve aynı dosyaya erişim verir. Kendi dinleyiciniz benzer işlevler sağlamıyorsa, dosya iki işlem tarafından kilitlendiğinde izlemeler kaybolabilir.

Ayrıca özel bir izleme dinleyicisinin, örneğin uzak bir veritabanına kablo üzerinde izlemeler ve iletiler gönderebildiğini de unutmayın. Bir uygulama dağıtıcısı olarak, özel dinleyicileri uygun erişim denetimiyle yapılandırmanız gerekir. Ayrıca, uzak konumda kullanıma sunabilecek tüm kişisel bilgilere güvenlik denetimi uygulamalısınız.

Hassas Bilgileri Günlüğe Kaydetme

İzlemeler, bir ileti kapsam dahilinde olduğunda ileti üst bilgileri içerir. İzleme etkinleştirildiğinde, sorgu dizesi gibi uygulamaya özgü üst bilgilerde kişisel bilgiler; ve kredi kartı numarası gibi gövde bilgileri günlüklerde görünür hale gelebilir. Uygulama dağıtıcısı, yapılandırma ve izleme dosyalarında erişim denetimini zorunlu tutmaktan sorumludur. Bu tür bilgilerin görünür olmasını istemiyorsanız, izleme günlüklerini paylaşmak istiyorsanız izlemeyi devre dışı bırakmanız veya verilerin bir bölümünü filtrelemeniz gerekir.

Aşağıdaki ipuçları, bir izleme dosyasının içeriğinin istemeden ortaya çıkmasını önlemenize yardımcı olabilir:

  • Günlük dosyalarının hem WebHost hem de kendi kendine konak senaryolarında Erişim Denetim Listeleri (ACL) tarafından korunduğundan emin olun.

  • Web isteği kullanılarak kolayca sunulmayabilecek bir dosya uzantısı seçin. Örneğin, .xml dosya uzantısı güvenli bir seçenek değildir. Sunulan uzantıların listesini görmek için IIS yönetim kılavuzunu kontrol edebilirsiniz.

  • Web tarayıcısı kullanan bir dış taraf tarafından erişilmesini önlemek için WebHost vroot ortak dizininin dışında olması gereken günlük dosyası konumu için mutlak bir yol belirtin.

Varsayılan olarak, anahtarlar ve kullanıcı adı ve parola gibi kişisel bilgiler (PII) izlemelerde ve günlüğe kaydedilen iletilerde günlüğe kaydedilmez. Ancak makine yöneticisi, makinede machineSettings çalışan uygulamaların bilinen kişisel bilgileri (PII) aşağıdaki gibi günlüğe kaydetmesine izin vermek için Machine.config dosyasının öğesindeki özniteliğini kullanabilirenableLoggingKnownPII:

<configuration>  
   <system.ServiceModel>  
      <machineSettings enableLoggingKnownPii="Boolean"/>  
   </system.ServiceModel>  
</configuration>

Uygulama dağıtıcısı daha sonra APP.config veya Web.config dosyasındaki özniteliğini kullanarak logKnownPii PII günlüğünü aşağıdaki gibi etkinleştirebilir:

<system.diagnostics>  
  <sources>  
      <source name="System.ServiceModel.MessageLogging"  
        logKnownPii="true">  
        <listeners>  
                 <add name="messages"  
                 type="System.Diagnostics.XmlWriterTraceListener"  
                 initializeData="c:\logs\messages.svclog" />  
          </listeners>  
      </source>  
  </sources>  
</system.diagnostics>  

Yalnızca her iki ayar true da PII günlüğü etkin olduğunda. İki anahtarın birleşimi, her uygulama için bilinen PII'yi günlüğe kaydetme esnekliği sağlar.

Yapılandırma dosyasında iki veya daha fazla özel kaynak belirtirseniz yalnızca ilk kaynağın özniteliklerinin okunduğunu unutmayın. Diğerleri yok sayılır. Bu, aşağıdaki App.config dosyasında, PII günlüğü ikinci kaynak için açıkça etkinleştirilse bile her iki kaynak için de PII'nin günlüğe kaydedilmediği anlamına gelir.

<system.diagnostics>  
  <sources>  
      <source name="System.ServiceModel.MessageLogging"  
        logKnownPii="false">  
        <listeners>  
           <add name="messages"  
                type="System.Diagnostics.XmlWriterTraceListener"  
                initializeData="c:\logs\messages.svclog" />  
          </listeners>  
      </source>  
      <source name="System.ServiceModel"
         logKnownPii="true">  
         <listeners>  
            <add name="xml" />  
         </listeners>  
      </source>  
  </sources>  
</system.diagnostics>  

<machineSettings enableLoggingKnownPii="Boolean"/> öğesi Machine.config dosyasının dışında varsa, sistem bir ConfigurationErrorsExceptionoluşturur.

Değişiklikler yalnızca uygulama başlatıldığında veya yeniden başlatıldığında etkili olur. Her iki öznitelik de olarak ayarlandığında başlangıçta bir olay günlüğe truekaydedilir. Ancak olarak ayarlandıysa logKnownPii bir olay da günlüğe trueenableLoggingKnownPiifalsekaydedilir.

PII günlüğü hakkında daha fazla bilgi için bkz . PII Güvenlik Kilitleme örneği.

Makine yöneticisi ve uygulama dağıtıcısı bu iki anahtarı kullanırken çok dikkatli olmalıdır. PII günlüğü etkinleştirildiyse güvenlik anahtarları ve PII günlüğe kaydedilir. Devre dışı bırakılırsa, ileti üst bilgilerinde ve gövdelerinde hassas ve uygulamaya özgü veriler günlüğe kaydedilir. Gizlilik ve PII'yi kullanıma sunulmadan koruma hakkında daha kapsamlı bir tartışma için bkz . Kullanıcı Gizliliği.

Ayrıca, ileti gönderenin IP adresi bağlantı odaklı aktarımlar için bağlantı başına bir kez ve aksi takdirde gönderilen ileti başına bir kez günlüğe kaydedilir. Bu, gönderenin onayı olmadan yapılır. Ancak, bu günlük yalnızca canlı hata ayıklama dışında üretimde varsayılan veya önerilen izleme düzeyleri olmayan Bilgi veya Ayrıntılı izleme düzeylerinde gerçekleşir.

Ayrıca bkz.