C # ve SQL Server: Şifreler. Nerede ne yapacağını?

oy
3

Tamam, C # ile yazılmış bir uygulama var. Biz, SQL Server veri var. bu verileri arasında biz uygulamaya erişimi verecektir kullanıcı hesapları var.

Etrafa okudum ve ben muhtemelen tuz ve karma ve ben ne nerede yapacağım, bir kaç kez, vb ama hash gerektiğini biliyorum? Ben ve SQL Server ne gönderebilirim? Tam olarak ben veritabanında ne saklamak? Ben SQL karma mı? (Muhtemelen gibi orada bir hash fonksiyonu, mysql?) Ben karma ve benim kodda fantezi şeyler yapmak mı? Ben sunucuya karma göndermek ve karşılaştırmak, yoksa benim uygulamada sunucudan karma almak ve benzerlikler nelerdir musunuz? tuz ne olacak? Nerede getiriyorsun? Nerede saklayın mı? Onu nasıl alırım?

Diğer bir deyişle, birisi bana güzel ve net bir giriş senaryosunun gidiş yolu (ve muhtemelen bir kullanıcı eklemek / şifre senaryosunu reset) verebilir. Ne vb yerlerde kullanılması gerektiğini nerede, ne gider

Birisi benim için bu şey temizleyebilirsiniz Hope =)

Oluştur 26/01/2009 saat 18:51
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
6

C # + SQL Server için, sadece sizin için tüm bu ilgilenir MembershipProvider modelini kullanabilirsiniz.

Ve IMO, almanın en önemli parçası bütün bu şeyler doğru olduğunu kendin yapmıyor . Aksine, sizin platformu tarafından sağlanan mekanizma güvenmektedir. Bu ince bir şekilde yanlış olsun sadece çok kolay görünür çalışmak. Sonra dağıtmak ve hatta şey kadar yanlış bilmiyorum sonra sen saldırılardan etkilendiğinden.

Cevap 26/01/2009 saat 18:54
kaynak kullanıcı

oy
0

Eğer üyelik şeyler inşa kullanarak, ASP.NET kullanıyorsanız ben bu şekilde olacak öneriyoruz uygulamak için çocuk oyuncağı.

Ancak, genel bir soru olarak, ben, yerel kodda karma uygulamaya koyacak sonra sadece veritabanına dışarı karma değerlerini gönderin. tuzlar için bunu yapmak için çeşitli yolları vardır, rastgele bir tuz oluşturabilir veya kayıtları kimliği, ya da başka bir şey kullanarak değer tuz olabilir. Yine, C # kodu yapardı. bunu yapmak için çerçevesinde yararlı bir yöntem yoktur.

Cevap 26/01/2009 saat 18:57
kaynak kullanıcı

oy
1

Ben en iyi seçim başkasının denedi ve gerçek uygulanmasını güvenmek, tamamen Joel Coehoorn katılıyorum. Ancak, kendi güvenlik uygulaması rulo kararlı iseniz, o zaman benim tavsiyem şudur:

  1. veritabanında karma ve tuzu saklayın.
  2. karma ve kendi kodunda tuz oluşturur. Bu şekilde belirli bir veritabanına kendini bağlıyor değiliz.
  3. düz metin olarak tel üzerinden şifre göndermek asla. Ben esrar ve veritabanından tuz oluşturma özelliği, siz kimlik doğrulaması isteyen parti tarafından sağlanan kullanıcı adı ve şifre hesaplanan olanları karşılaştırarak öneriyoruz.
Cevap 26/01/2009 saat 19:00
kaynak kullanıcı

oy
0

Üyelik Sağlayıcı modeli sunulmuştu önce yıllardır bu kendimi bir numara önce yaptı.

Biz yerleşik içine ASP.NET şifre karma işlemek için fonksiyonları kullanılır; o FormsAuthentication ad alanında statik yöntem HashPasswordForStoringInConfigFile bu. Sen bunu bir şifre ve bir şifreleme seçenek sunmak ve karma şifreyi döndürür.

Bizim akış oldu: - Hte kullanıcı adı girilen için veritabanından karma şifreyi alın. - Girilen şifreyi Hash. - Eşleşiyorlar mı? böylece devam ederse, başka oturum açma başarısız oldu.

şifresini değiştirirken, biz depolamak için veritabanına karma gönderdi; Biz şifrelenmemiş parola göndermedi.

Ve inanıyorum ki bu MembershipProvider bugün yorganın altında ne yaptığını olduğunu.

Eğer bunu yapıyor nasıl olursa olsun form kimlik yaparken de en önemli parçasını yinelemek için, güvenli (HTTPS) bağlantısı üzerinden çalışmaktır.

Cevap 26/01/2009 saat 19:35
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more