Nasıl benim kullanıcıların store' şifreleri güvenli bir şekilde alabilir miyim?
Ne kadar daha güvenli düz MD5 daha bu? Sadece şifre güvenliği araştırma yapmaya başladım. PHP oldukça yeniyim.
$salt = 'csdnfgksdgojnmfnb';
$password = md5($salt.$_POST['password']);
$result = mysql_query("SELECT id FROM users
WHERE username = '".mysql_real_escape_string($_POST['username'])."'
AND password = '$password'");
if (mysql_num_rows($result) < 1) {
/* Access denied */
echo "The username or password you entered is incorrect.";
}
else {
$_SESSION['id'] = mysql_result($result, 0, 'id');
#header("Location: ./");
echo "Hello $_SESSION[id]!";
}
CEVAP
Şifre depolama düzeni güvenli almak için en kolay yolu gereğidirstandart bir kütüphane kullanarak.
Çünkü güvenlik eğilimi olmak çok daha karmaşık ve daha görünmez berbat olasılıkları daha birçok programcı olabilir mücadele tek başına kullanarak bir standart kütüphane hemen hemen her zaman en kolay ve en güvenli (tek) seçenek mevcut.
Yeni parola PHP API (5.5.0 )
Eğer PHP 5.5.0 sürümü veya daha yeni kullanıyorsanız, ya da 5.3.7 veya daha yeni kullanıyorsanız ve ircmaxell/password_compat yükleyin yeni basitleştirilmiş şifre API karma kullanabilirsiniz. Örneğin:
Karma oluşturma:
$hash = password_hash($_POST['password'], PASSWORD_DEFAULT, ['cost' => 12]);
Şifre doğrulama:
if (password_verify($_POST['password'], $hash)) {
// Success!
}
Eski standart kütüphane
Bir göz atın: Portable PHP password hashing framework:phpassve CRYPT_BLOWFISH
algoritması kullanın emin olun mümkünse.
kod kullanarak phpass örneği (v0.2):
require('PasswordHash.php');
$pwdHasher = new PasswordHash(8, FALSE);
// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );
// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
echo 'password correct';
} else {
echo 'wrong credentials';
}
PHPass bilinen projeler oldukça iyi: bazı uygulanmıştır
- phpBB3
- WordPress 2.5 olarak bbPress
- Siteye 7 sürümü, (modül İpuçları için kullanılabilir 5 ve 6)
- others
İyi olanı ayrıntıları hakkında endişelenmenize gerek yok yani, o ayrıntıları deneyimi olan kişiler tarafından programlanmış ve internet üzerinde birçok millet tarafından gözden geçirilmiştir.
Şifre saklama programları hakkında daha fazla bilgi için Jeff`s blog yazısı okuyun: You're Probably Storing Passwords Incorrectly
Ne olursa olsun, eğer alacak olursan yapKendim, teşekkür ederim . /^>' yaklaşımı . em ^strong>MD5
SHA1
artık kullanmayın. Karma algoritma çok güzel, ama kabulgüvenlik nedeniyle kırık.
Şu anda, CRYPT_BLOWFİSH crypt kullanarak en iyi uygulamadır.
PHP CRYPT_BLOWFİSH Bcrypt karma bir uygulama. Bcrypt Blowfish blok şifre pahalı anahtar algoritması yavaş Kur yararlanarak dayanmaktadır.
Nasıl benim Twitter sağa Hizala düğmel...
Nasıl otomatik yüceltmek benim toplu i...
Nasıl benim için bir SQL dizesi oluştu...
Nasıl MSBUİLD benim için MSDEPLOY çalı...
Nasıl benim uygulama sürümü düzeltme e...