SSL olmadan değil
Parola ağ üzerinden düz metin olarak gönderilirse bu güvenli değildir. Parola ağ üzerinden düz metin olarak gönderilirse, sunucu tarafında parolayı karma yapmak güvenli değildir.
HTML <input type="password"/>
etiketi, içeriğini düz metin olarak gönderdiğinden, web siteniz şifreyi iletmek için SSL kullanmadığı sürece, şifreyi sunucuda nasıl saklarsanız saklayın, bu bir sorun olacaktır.
(Tarayıcıda şifre isteyen bir iletişim kutusu açan HTTP kimlik doğrulaması, sunucunun ve tarayıcının ortak kimlik doğrulama mekanizmalarına bağlı olarak açık metin olabilir veya olmayabilir. SSL.)
Site yöneticileri şüpheli değilse değil
Şimdi, web sitesini yapmak için HTTPS kullandığınızı varsayarsak, site yöneticilerinize (düz metin şifrelerini okuyabilen) ve makineye erişimi düzgün olan diğer kişilere güveniyorsanız bu güvenli olabilir. Şimdi, web sitenizle istedikleri her şeyi yapabildikleri açıktır (yönettiklerinden beri), ancak şifreyi okuyabilirlerse, çalınan giriş / şifre çiftlerini başkalarının sitelerinde de kullanabilirler.
Şifreleri yönetici tarafından güvende tutmanın bir yolu
Parolaları depolamanın ve kontrol etmenin güvenli bir yolu aşağıdaki gibidir:
def change_password user, new_password
salt = random(65536).to_s(16) #will be 4 characters long
password_hash = salt + hash(salt + new_password)
store(user,password_hash)
end
def does_password_match? user, entered_password
correct_password_hash = retrieve(user)
salt = correct_password_hash[0...4]
entered_password_hash = salt + hash(salt + entered_password)
return correct_password_hash == entered_password_hash
end
Karma işlevi için, güçlü bir şey ve henüz vahşi doğada iyi gökkuşağı tabloları olmayan bir şey kullanmaya çalışın. Gerekirse tuz masalarının uzunluğunu değiştirebilirsiniz.
İçinde bulunduğunuz ortama, ağ gecikmenizdeki değişkenliğe ve kullanıcı adlarının genel olarak bilinip bilinmediğine bağlı olarak, hash('0000'+entered_password)
saldırganların hangi kullanıcı adlarının geçerli olacağına bağlı olarak parolanın yanlış olduğunu belirleyin.