Makale numarası: 900111 - Son Gözden Geçirme: 24 Mayıs 2007 Perşembe - Gözden geçirme: 4.3

FormsAuthentication.SignOut yöntemi ASP.NET uygulamalarında, tanımlama bilgisi yanıt saldırıları engelle

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Beta Bilgileri
Bu makalede, bir Microsoft ürününün beta sürümü anlatılmaktadır. Bu makaledeki bilgiler olduğu gibi sağlanmıştır ve önceden bildirilmeden değiştirilebilir.

Bu beta ürün için Microsoft resmi bir ürün desteği sağlamamaktadır. Beta sürümüne yönelik destek almak hakkında bilgi için beta ürün dosyalarının içerdiği belgelere bakın veya sürümü karşıdan yüklediğiniz Web konumunu denetleyin.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, FormsAuthentication.SignOut yönteminin sınırlamalarını açıklar ve form kimlik doğrulama tanımlama bilgisi kötü niyetli bir kullanıcı tarafından alındıktan, tanımlama bilgisi yanıtı saldırıların kolaylaştırmak hakkında bilgi sağlar. Bu makalede, Microsoft ASP.NET uygulamalarında, tanımlama bilgisi yeniden gönderme saldırılarını azaltmak için kullanabileceğiniz aşağıdaki yöntemler sağlar:
  • Uygulama tarafından SSL kullanarak koruma
    <a1>Yapılandır</a1> Web uygulaması, Microsoft ınternet ınformation Services (Bu SSL gereklidir; bu nedenle IIS). Bunu yaparsanız, form kimlik doğrulama özelliği hiçbir zaman tanımlama bilgisi bir SSL olmayan bağlantı. yayımlayacak şekilde emin
  • TTL zorlamak ve mutlak bir süre sonu
    Kısa TTL kullanırsanız, bir saldırı olasılığını azaltmaya yardımcı olabilir. Sona erme. kayan yerine mutlak bir sona erme kullanmalısınız
  • Kullanım HttpOnly tanımlama ve form kimlik doğrulaması, ASP.NET 2.0
    , ASP.NET 2.0, form kimlik doğrulama tanımlama'bilgileri HttpOnly tanımlama bilgileridir. HttpOnly tanımlama bilgileri, istemci komut dosyası erişilemez. Bu işlevi yeniden gönderme saldırılarını. olasılığını azaltmaya yardımcı olur.
  • Üyelik ASP.NET 2.0 sınıfında kullanma
    ASP.NET 2.0'de, korumaya yardımcı kullanılmasını kullanıcı bilgilerini depolayarak kötü amaçlı olarak form kimlik doğrulama tanımlama bilgisi MembershipUser.

Giriş

Bu makalede, bir form kimlik doğrulama tanımlama bilgisi, kötü niyetli bir kullanıcı tarafından elde edilen ortaya çıkabilecek bir sorunu açıklar. Bu senaryoda, tanımlama bilgisi için bir form kimlik doğrulaması için kullanılan FormsAuthentication.SignOut sonra bir ASP.NET uygulaması kimlik doğrulama yöntemi çağrıldı. Kötü niyetli BIR kullanıcının, sistem bu kullanıcının aşıldığını sürece başka bir kullanıcının form kimlik doğrulama tanımlama bilgisini elde etmek için hiçbir yolu yoktur.

Daha fazla bilgi

Form kimlik doğrulama tanımlama bilgisini, FormsAuthentication.SignOut yöntemi istemci bilgisayardan kaldırır. Ancak, FormsAuthentication.SignOut yöntemi kapatmasını kullanıcının sunucu üzerindeki tüm kalıcı gösterimi depolamaz. Bu nedenle, form kimlik doğrulama tanımlama bilgisini uygun korunmuyor ve tanımlama bilgisi, kötü amaçla bir üçüncü şahıs tarafından alınır, bu tanımlama bilgisi FormsAuthentication.SignOut yöntemi çağrıldıktan sonra sunucu kimlik doğrulaması için kullanılır. Tanımlama bilgisinde bulunan formlar kimlik doğrulama bileti süre kadar bu davranış oluşabilir.

Not Tanımlama bilgisi de süre sonu olsa da, form kimlik doğrulaması her zaman formları form kimlik doğrulama bileti olarak kabul edilip edilmediğini belirlediğinde kimlik doğrulaması biletinin süresi içinde yer alan son kullanma tarihini kullanır.

Bu tür saldırı olasılığını azaltmak için <a0></a0>, Güvenli Yuva Katmanı (SSL) kullanarak, form kimlik doğrulama tanımlama bilgisini korunmasını artırmak yardımcı olur. Ayrıca, mutlak bir sona erme yerine kayan bir sona erme kullanmalısınız. Mutlak bir sona erme saati için Formlar kimlik doğrulama bileti için yaşam süresi (TTL için) kısıtlar.

ASP.NET 2.0 ayrıca, form kimlik doğrulama tanımlama bilgisini kullanarak yeniden gönderme saldırılarını azaltmak için kullanabileceğiniz bir işlev ekler. ASP.NET 2. 0'üyeliği sınıfı, form kimlik doğrulaması kullanıcıların oturum açmak için daha güvenli bir çözüm yükseltmek için kullanabilirsiniz.

SSL kullanarak uygulama koruma

SSL gerekli olacak biçimde bu Web uygulamasını Microsoft ınternet ınformation Services (IIS) yapılandırarak, istemci ve Web tarayıcısına arasında aktarılan tüm bilgileri şifrelenir. <forms>RequireSSL öznitelik bu yöntemi kullandığınızda öğesi de true olarak ayarlanmalıdır. Bu özniteliği true olduğunda, bağlantının SSL üzerinden gönderilen ve hiçbir zaman form kimlik doğrulama özelliği tanımlama bilgileri SSL olmayan bir bağlantı üzerinden verecek uyumlu bir tarayıcı tanımlama bilgisi göndermez.

SSL altında bazı sayfaları ve diğer sayfaları SSL altında olmayan bir site olduğu durumlarda requireSSL özniteliği SSL olmayan sayfa istendiğinde tarayıcı form kimlik doğrulama tanımlama bilgisi göndermiyor emin olmak için tasarlanmıştır. Ancak, kullanıcı aracısı sorumluluğunu SSL olmayan sayfa istendiğinde tarayıcı form kimlik doğrulama tanımlama bilgisi göndermiyor kural uygulamak için vardır. Bu nedenle, tüm uygulama SSL gerektirecek biçimde yapılandırırsanız, güvenliğini artırmaya yardımcı.

SSL için bir uygulama yapılandırma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
299875  (http://support.microsoft.com/kb/299875/ ) Bir Windows 2000 IIS 5.0 bilgisayarda SSL nasıl

TTL ve mutlak bir sona erme zorla

<forms>Zaman aşımı özniteliği yapılandırılabilir bir kısa TTL kullanarak öğesi, bir tanımlama bilgisi yeniden saldırı riskinin azaltılmasına yardımcı olabilir. Ayrıca, slidingExpiration öznitelik yanlış olarak ayarlanması konusunda gerekir. Varsayılan olarak, ASP.NET 2.0'ndeki ayarı geçerlidir.

ASP.NET 2. 0'HttpOnly tanımlama ve form kimlik doğrulaması kullanın

ASP.NET 2. 0'da, form kimlik doğrulama tanımlama bilgisi HttpOnly tanımlama bilgileri var. HttpOnly tanımlama bilgileri, istemci komut dosyası kullanılarak erişilemez. Ancak, HttpOnly özelliği yalnızca Microsoft ınternet Explorer 6'kullanılabilir Service Pack 1 (SP1). Önceki kullanıcı aracıları özelliği yok sayacak.

HttpOnly tanımlama bilgileri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms533046.aspx (http://msdn2.microsoft.com/en-us/library/ms533046.aspx)

Üyelik sınıf ASP.NET 2. 0'kullanın...

ASP.NET 2. 0'da form kimlik doğrulaması uygulamak için bir Üyelik sağlayıcısı kullanıcı bilgilerini depolama seçeneği vardır. Bu seçenek, ASP.NET 2. 0'da tanıtılan yeni bir özelliktir. MembershipUser nesnesi, belirli kullanıcılara içerir.

Kullanıcı oturum, MembershipUser nesnenin Açıklama özelliğinde bu bilgileri de depolayabilir. Bu özelliği, ASP.NET 2.0'da tanımlama bilgisi yeniden gönderme sorunlarını azaltmak için bir düzenek geliştirebilirsiniz. Bu mekanizma, şu adımları izleyin:
  1. Oluşturduğunuz bir HttpModule, PostAuthenticateRequest olay için kanca oluşturur.
  2. FormsAuthenticationModule sınıfı bir FormsIdentity nesnesi HttpContext.User özelliğinde, form kimlik doğrulaması biletinin geçerli olarak tanır. Daha sonra özel HttpModule</a0> sınıfı, kimliği doğrulanmış bir kullanıcı ile ilişkili MembershipUser örneği başvurusu alır.
  3. Comment özelliği, kullanıcının şu anda oturum olup olmadığını belirlemek için de, inceleyin.

    ÖnemliComment özelliği, kullanıcı açıkça oturumunuz belirten, bilgileri saklamanız gerekir. Ayrıca, müşteri sonunda yeniden oturum açtığınızda <a2>Açıklama</a2> özellik bilgileri silmeniz gerekir.
Kullanıcı şu anda Açıklama özelliğinde belirtildiği gibi oturum değil, aşağıdaki eylemleri gerçekleştirmeniz gerekir:
  1. Tanımlama bilgisi temizleyin.
  2. Özellik Response.Status için 401 ayarlayın.
  3. Örtülü olarak isteği, oturum açma sayfasına yönlendirir Response.End yöntemi çağrısı yapın.
Bu yöntemi kullanarak, form kimlik doğrulama tanımlama bilgisini yalnızca kullanıcı açıkça imzalanmamış ve form kimlik doğrulama bileti henüz dolmuş kabul edilir.

Referanslar

Form kimlik doğrulamasını tanımlama bilgileri SSL kullanarak korunmasına nasıl yardımcı olacağınız hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
813829  (http://support.microsoft.com/kb/813829/ ) Güvenli bir form kimlik doğrulaması, Güvenli Yuva Katmanı (SSL) kullanarak Yardım

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 2.0
Anahtar Kelimeler: 
kbmt kbauthentication kbprogramming kbiis kbsecurity kbservicepack kbhowto kbinfo KB900111 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:900111  (http://support.microsoft.com/kb/900111/en-us/ )