2012-02-24 13 views
17

Giriş sayfama antiforma belirteci uygulamam var.Giriş sayfasındaki kimlik sahtekarlığı belirtisi

Artık bir kullanıcı klavyede arka tuşa bastığımda, ve kimlik bilgilerini girdikten sonra tekrar giriş düğmesine tıkladıklarında hata sayfası aldılar.

Bu vakayı, yeni giriş sayfasına yönlendirmek gibi daha iyi bir şekilde ele almanın bir yolu var mı? giriş sayfasını ise

Sayfa geçerli: /hesap/oturum açma

giriş bilgileri başarılı sayılabilmek kullanıcı yönlendirilir ise: Kullanıcı geri düğmesine basıldığında hangi Ev/Dizini sayfasına .

+0

Backspace tuşuna bastığında kullanıcı hangi sayfadaydı? –

+0

@DarinDimitrov: Güncelleme – cpoDesign

cevap

5

Benim çözüm görmek oldu:

Yeniden tekrar giriş sayfasını vurursa bir sayfa. bu antiforgery belirteç

taze yükleme sağlayacak ve tüm burada tam bir çözüm yazdım

+1

Aynı yaklaşımı kullanıyorum. Bunu yapmak için, önbellek başlıklarının doğru şekilde ayarlandığından emin oldum: (Önbellek Denetimi = önbellek, mağaza yok, yeniden-doğrula), (Son = = -1). Antiform jetonların kullanıcı bağlamına bağlı olarak "dinamik" olduğu göz önünde bulundurulduğunda, tüm uygulama sayfalarında (iç) no-cache ayarlamaktan başka seçenek kalmıyor, değil mi? Yani, bir kullanıcı giriş yaptıktan sonra potansiyel olarak daha önce bulundukları keyfi bir uygulama sayfasına geri dönebilir ... ve eğer bu sayfa önbelleğe alınmışsa ve ondan yayınlamaya çalışırsa, bir hataya vuracaklardır. Tüm web uygulaması için no-cache'nin tek çözüm olduğunu düşündüğüm :( – sammy34

+0

Not: "bir sahtekarlık jetonu uygulama" nın yukarı-cevaplı cevabı, bir kullanıcının oturum açtığı ve daha sonra gezineceği bir durumu kapsamaz. Sahte jetonun sahip olduğu makul olan diğer (oturum açma) uygulama sayfasına geri dönün. – sammy34

18

ASP.NET AntiForgeryToken'ı giriş sayfanızda uygulamayın. Simge, diğer ölçütler arasındaki bir kullanıcı adına dayanmaktadır ve giriş sayfası, saldırganın bu sayfada csrf'den yararlanabilmesi için zaten bir sisteme sahip olduğunu varsayar.

Ancak, giriş sayfasındaki CSRF koruması çeşit kullanmalıdır - Buna https://security.stackexchange.com/a/2126/51772

+0

'a bakın Cevabınızı tamamen anlamıyorum. LogOn işlevinde bir csrf saldırısı yapmak mümkün olmadığından, giriş sayfasındaki belirteç kullanılarak neden yanlıştır? – Marthijn

+1

CSRF işlevleri 'genellikle' bir kimliği doğrulanmış kullanıcının bu kullanıcı adına harekete geçmesi için bir istekte bulunur. Bir saldırgan bir giriş sayfasına saldırıyorsa, bu zaten sahip oldukları anlamına gelir. Bu durumda kendileri giriş yapabilirler. Eğer bir iç uygulama ise ve dışarıdan vekalet ediyorlarsa, o zaman bir kullanıcı giriş yapana kadar bekleyebilirler. Burada bir jeton kullanmak isterseniz, mevcut yöntemi hacklemeniz ve yeni bir şey bulmanız gerekir. Antiforma jetonu, 'kimlerin oturum açtığı' ile ilgilidir. Yani bir kez giriş yaptıktan sonra geri dönün, eski jeton artık geçerli değil, bu nedenle probleminiz. –

+0

Çoğu insan bunu bir giriş sayfasında yapmaz. Ekstra ihtiyatlıysanız ve birisinin giriş yapma isteğini bildirmek için kimlik bilgilerini kullanabileceğini düşünüyorsanız, sayfalarınızı her seferinde önbelleğe almamak ve yeni jetonlar yüklemeye zorlamak zorunda kalacaksınız veya yerleşik olarak kendi özel düzeninizle gelmelisiniz. Bu durumda antiforum jetonu işe yaramaz. –

5

yapılır: http://richardcooke.info/keep-users-signed-in-after-asp-net-deploy/

İşte GET yöntemini oluşturur controller içerisinde aramak için gerekli kod:

:
private void SetANewRequestVerificationTokenManuallyInCookieAndOnTheForm() 
{ 
    if (Response == null) 
     return; 

    string cookieToken, formToken; 
    AntiForgery.GetTokens(null, out cookieToken, out formToken); 
    SetCookie("__RequestVerificationToken", cookieToken); 
    ViewBag.FormToken = formToken; 
} 

private void SetCookie(string name, string value) 
{ 
    if (Response.Cookies.AllKeys.Contains(name)) 
     Response.Cookies[name].Value = value; 
    else 
     Response.Cookies.Add(new HttpCookie(name, value)); 
} 

ve kod

Html.AntiForgeryToken() yerine sizin görünüme geçirilecek
İlgili konular