, Karma ve benim planında kusurları bir ikinci görüş güvenlik faydaları vardır

1 Cevap php

İşte benim plan ve hedefleri:

Overall Goals:

  • Sadelik ve belirli bir miktar ile güvenlik Ben uzman değilim ve olabilir karmaşa o kadar ve ben onların şifreleri sıfırlamak için kullanıcıların bir sürü sormak zorunda istemiyorum veritabanı için veritabanı transferrability, 'çünkü.
  • Yayıncılık için şifreleri silmek için kolay bir "sildi" test verilerinin databased. (Örneğin ben test kendileri için bu test verileri kullanabilir böylece sadece basit bir şey için tüm şifreleri sıfırlamak için bir postgresql deyimi kullanmak mümkün olmak istiyorum).

Plan:

Hashing the passwords

Hesap oluşturma bir hesap oluşturulur orijinal e-posta, sonsuza kadar kaydeder.

  • Küresel bir tuzu kullanıldığı, örneğin, "90fb16b6901dfceb73781ba4d8585f0503ac9391".
  • Bir hesap özel tuz, hesap ile oluşturulan özgün e-posta, kullanılır, örneğin "My.account @ example.com".
  • Kullanıcıların parolası kullanılır, örneğin "Password123" (Ben kayıt formu zayıf şifrelere karşı uyarı olacak)

Küresel tuz kombinasyonu, özel tuz, hesap ve şifre (PostgreSQL karma fonksiyonlar için belgeleri bulmak mümkün olmamıştır, ama SHA-2 ya da buna benzer bir şey kullanmak mümkün olacaktır postgresql bazı karma yöntemle hashed güzel Onu bulmak eğer).

Karma veritabanına kaydedilir alır.

Recovering an account

Parolasını değiştirmek için, onlar standart şifre sıfırlama yoluyla gitmek zorunda (ve bu sıfırlama e-posta orijinal e-posta gibi onlar ayarlamış en son hesap e-posta gönderilen alır).

Flaws?

Ben ele almak gerekir bu ile herhangi bir kusurları var mı? Ve postgresql içinde tamamen karma yapmanın en iyi uygulamalar vardır?

1 Cevap

Ben tuz kullanıcının veri parçası yapmazdım. Bir yönetici, örneğin kullanıcının e-posta adresini (kullanıcının şifresini yeniden oluşturmak karma edebilmek için bilmiyor kimse) değiştirmek gerekiyor ne varsa. Yerine hesap oluşturma damgası veya kaydında depolanan rasgele bir değer, ya da diğer değişmez kullanıcı belirli bir değer kullanın.