Nasıl bir tanımlama kullanıcının LDAP şifresini saklamak gerekir?

2 Cevap php

Yani temelde ldap_bind($connection, $username, $password) tutarı hesaplar insanlar, bana aşağı teslim, bu kara kutu kimlik doğrulama yöntemi var. Ama tabii, benim kullanıcıları bir anda 30 gün, diyelim ki, giriş yapabilmek istiyorum.

naive but insecure way Bu düz metin çerezleri kullanıcı adı ve şifre saklamak için işlemek için, daha sonra her zaman kullanıcının ziyaret benim kara kutusunu kullanarak bu doğrulamak.

way that usually works but doesn't because of my black box veritabanındaki kullanıcı parolayı depolamak (ya da karma? Depolamak), ve çerez karma versiyonunu saklamak ve daha sonra değerlerini karşılaştırmaktır. Benim siyah kutu gerçek şifre değil, bir karma şifre talepleri bu yana, bu burada çalışmıyor.

Benim geçerli düşünce şifreleme bir tür (sağlama aksine) 'dir. Bu tabii ki ortak bir sorun olduğu için ama, ben iyi şifreleme / şifre çözme yöntemi önermek ne, değilse ortalıkta daha iyi bir çözüm olup olmadığını görmek için ilk etrafında sormak, ya da düşündüm.

2 Cevap

Bu gerçekten sorunuza cevap vermez, but you should NOT store your users passwords, not even encrypted.

Eğer gerçekten bunu yapmak zorunda ve kullanıcıların bunu yaptığını anlamak. sonra (tabii şifreli) uygulamanın bir veritabanında parolayı depolamak ve daha sonra kullanıcıya bir karma ile bir çerez göndermek. Kullanıcı giriş saklanan ne karma karşılaştırın ve sadece o ldap şifrelenmemiş bir parola göndermek istiyor. Kullanıcının makinesine şifresini (hatta şifrelenmiş değil) göndermek asla.

Yine, bu çok kötü bir uygulamadır. ldap izin vermez eğer o zaman bunun için iyi bir nedeni muhtemelen vardır oturumlar / şifrelerinizi saklamak.

kullanıcı oturum açtığında, (daha uzun tarama oturumunda daha sürecek, çünkü değil kesinlikle bir oturum cookie) onlara rasgele oluşturulmuş bir "oturum çerezi" vermek ve mağaza dizilerini:

User_id | cookie_id

sonra cookie_id kullanıcı tablo ile ve kapalı gitmek user_id katılmak bağlanmasından.