2009-07-08 23 views
5

Geçici ASP.NET Dosyaları klasörüne yetersiz izinler nedeniyle derleme bağlama hataları yaşıyorum.Temporary ASP.NET Dosyaları klasörüne kullanıcı yazma izinleri herhangi bir güvenlik sorunu oluşturur mu?

Uygulama, Impersonate = True ve IIS Windows Tümleştirilmiş Kimlik Doğrulaması ile (web.config) Form kimlik doğrulamasını kullanır.

ASP.NET Identity Matrix'a göre, bu, WindowsIdentity'nin Etki Alanı \ KullanıcıAdı olarak çözdüğü ve ASP.NET Required Access Control Lists (ACLs)'a göre, WindowsIdentity'nin Geçici ASP.NET Dosyaları klasörüne okuma/yazma izinleri gerektirdiği anlamına gelir.

Fusion günlük görüntüleyiciyi kullanarak, derleme bağlama hatasının, yalnızca bu klasörde okuma iznine sahip olan ancak yazma izinleri olmayan Domain \ UserName (güvenlikteki "Users" grubuna ait) olduğunu doğrulayabilirim.

sorular şunlardır:

Geçici ASP.Net Files klasörüne yazma izinlerini atama herhangi bir güvenlik etkileri var mıdır?

Böyle bir sunucu yapılandırması değişikliği yaygın olarak kullanılıyor mu? Değilse, neden WindowsIdentity, web.config ayarlarının bu birleşimi için Etki Alanı \ KullanıcıAdı'na giderdi - veya bu kombinasyon bu bağlamda kullanılmamalıdır?

Not: Sorun, yalnızca yönetici olmayan bir kullanıcı sayfaya ilk defa basarsa oluşur. Derleme, bir ASP.NET Dosyasında, sayfayı başlatan bir yönetici kullanıcısı tarafından derlenmiş ve depolanmışsa, sonraki kullanıcılar için sorun yoktur. Meclisleri GAC'a yerleştirmek istemiyorum.

+0

Bu IIS6 veya IIS7 mi? – Kev

cevap

1

ASP.NET, Geçici ASP.NET dosyaları klasörüne yazma izni gerektirir, yalnızca bu klasöre izin vermeniz için bir güvenlik riski olmamalıdır ve c: \ windows klasöründe bulunduğu sürece daha yüksek bir güvenlik değeri olmamalıdır.

Bu MSDN article about securing ASP.NET applications, geçici derleme dizinine ASP.NET işlem kimliğine tam denetim izni verilmesini önerir. Ben İlgili bölümü alıntı ettik: Varsayılan olarak

, geçici dosyalar oluşturulur ve aşağıdaki dizinde derlenmektedir:

% winnt% \ Microsoft.NET \ Framework {version} \ Temporary ASP.NET Files

Bu, uygulama başına bir temelde tempDirectory özniteliğini kullanarak belirtebilirsiniz; ancak bu, hiçbir güvenlik yararı sağlamaz.

Not Öğede belirtilen ASP.NET işlem kimliği, geçici derleme dizininde Tam Denetim erişim hakları gerektirir.

+0

(Bağlantının önüne "msdn" eklemeniz gerekir.) Evet, ancak bu durumda, web.config ayarları DOMAIN \ User öğesinin (yapılandırılmış kimliğe bürünme) yazma erişimi gerektirdiğini ve sorunun özellikle ilgili olduğunu belirtir. Hangi güvenlik etkilerine sahip olabilirdi. ASP.NET Süreci, bu derleme bağının bir parçası olarak görünmüyor. –