SORU
20 Mart 2009, Cuma


Nasıl Şifre Sıfırlar Uygulamak için?

ASP.NET ve eğer benim kendi rulo isteseydim Password Reset bir işlevi uygulamak edebilirim özellikle merak ediyordum bir uygulama üzerinde çalışıyorum.

Özellikle şu soru var:

  • Çatlamak için zor Benzersiz bir KİMLİK oluşturmak için iyi bir yolu nedir?
  • Bir zamanlayıcı bağlı olmalı? Eğer öyleyse, ne kadar olmalıdır?
  • IP adresini kaydetmek gerekir? Bunun bir önemi var mı?
  • Bilgi isteyeceğim altında "" ekran ? Parola Sıfırlama ne yapmalıyım Sadece e-Posta adresiniz? Ya da belki e-posta adresi bu Bilgi bir parça artı ''? (Favori takım, yavrunun adı, vb)

Diğer konuları bilmem gerek var mı?

NB: Other questions tamamen glossed over teknik uygulama var. Gerçekten de kabul cevabı detaylarıyla belirginleştiriyor. Bu soru ve cevapları sonraki detaylarıyla girecek umarım cevaplarını az olan bu soru cümle daha dar umarım '' ve''. gore kabartmak

Edit: Böyle bir tablo ve SQL Server örnek alınarak işlenmiş olabilir veya herhangi bir ASP.NET MVC bir cevap için bağlantıları nasıl gider cevap mutluluk duyacağız.

CEVAP
30 Mart 2009, PAZARTESİ


Bir takip bu popüler cevap Olarak, ben artık bu işlem GUID, kendim de kullanıyorum. EDİT 2012/05/22: Diğer popüler cevap gibi, ben şimdi URL göndermek için anahtar oluşturmak için kendi karma algoritmamı kullanın. Bu da daha kısa olması avantajı vardır. Sistem içine bak.Güvenlik.Kriptografi ben genelde TUZ gibi kullanan, onları oluşturmak için.

İlk olarak, hemen kullanıcı parolasını sıfırlama.

İlk olarak, hemen istediklerinde kullanıcı parolasını sıfırlama. Bu kimse kapris de e-posta adresleri (şirket e-posta adresiniz gibi) ve reset şifreleri tahmin olabilir gibi bir güvenlik ihlali. Uygulamalar bu gün genellikle vardır iyi bir "onay" bağ kullanıcının e-posta adresini sıfırlamak istiyorlar teyit etmek için gönderdi. Bu bağlantıyı benzersiz anahtar bağlantı göndermek istediğiniz. Gibi bir link ile benim gönderdiğim: domain.com/User/PasswordReset/xjdk2ms92

Evet, linke bir zaman aşımı ayarlamak ve arka uç üzerinde anahtar ve zaman aşımı deposu (ve eğer kullanıyorsanız tuz). 3 gün zaman aşımına uğrayan norm ve sıfırlamak için istediklerinde web düzeyinde 3 gün kullanıcıya bildirmek için emin olun.

Benzersiz bir karma tuşunu kullanın

Önceki cevabımı bir GUID kullanmak " dedi. Şimdi bu, örneğin RNGCryptoServiceProvider kullanarak rasgele bir karma kullanmak için herkes tavsiye için düzenleme yapıyorum. Ve, "" karma. gerçek herhangi bir kelime ortadan kaldırmak için emin olun Bir kadın "c" kelime "sanırım rastgele bir geliştirici yaptığını anahtarı." sağlaması için belli bir alınan özel 6 telefon görüşmesi hatırlıyorum Doh!

Tüm süreç

  • Tıkladığında "reset" parola.
  • Kullanıcı bir e-posta istedi.
  • Kullanıcı e-posta ve tıklama göndermek girer. Bu da kötü bir uygulama olarak veya e-posta onaylamak inkar etmiyorum. Sadece, "eğer e-posta doğrulanmış ise parola sıfırlama isteği gönderdik" ya da benzeri bir şifreli.
  • ut_UserPasswordRequests bir tablo içinde ayrı bir varlık olarak ** 3, marketten bir karma oluşturmak ve geri kullanıcı için bağlantı. Yani bu eski istekleri izlemek ve kullanıcıya bildirmek böylece eski bağlantılar süresi doldu.
  • E-posta bağlantısını gönderin.

Kullanıcı bağlantıyı, http://domain.com/User/PasswordReset/xjdk2ms92 gibi alır ve "klik" sesi.

Eğer bağlantı doğrulanabilir, size yeni bir şifre isteyin. Basit ve kullanıcı kendi şifre koymak için alır. Ya da, kendi şifreli bir parola ayarlamak ve yeni şifre burada kendi kendilerine haber (ve onlara e-posta).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009