Güvenli Parola Saklama
Parolaları password_hash ile özetleyin ve password_verify ile doğrulayın.
Güvenli Parola Saklama, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Düz Metin Parolaları Asla Saklamayın
Parolaları düz metin olarak saklamak, bir veritabanı ihlalinin her kullanıcının parolasını açığa çıkarması anlamına gelir. Her zaman kriptografik bir özet saklayın; tercihen bcrypt, Argon2id veya scrypt kullanın.
password_hash()
PHP'nin yerleşik password_hash() işlevi, çıktıya dahil edilen rastgele bir tuzla güvenli bir özet oluşturur.
<?php
$hash = password_hash("mysecretpassword", PASSWORD_BCRYPT);
// Output: $2y$10$... (includes algorithm, cost, salt, hash)password_verify()
Düz metin bir parolayı saklanan bir özete karşı doğrulayın.
<?php
$hash = "$2y$10$abcdef...";
$valid = password_verify("mysecretpassword", $hash);
if ($valid) {
echo "Correct password!";
}Algoritma Seçenekleri
PHP şunları destekler:
PASSWORD_BCRYPT— yaygın olarak desteklenir, 72 bayt sınırı vardırPASSWORD_ARGON2I— bellek açısından zorlayıcıdır (PHP 7.2+)PASSWORD_ARGON2ID— önerilir, GPU saldırılarına dirençlidir (PHP 7.3+)PASSWORD_DEFAULT— şu anda bcrypt kullanır, gelecekteki PHP sürümlerinde değişebilir
Maliyet Katsayısı
Maliyet katsayısı, özet hesaplamasının ne kadar yavaş olduğunu belirler. Daha yüksek maliyet, kaba kuvvet saldırılarının daha yavaş gerçekleşmesi demektir. Varsayılan bcrypt maliyeti 10'dur.
<?php
$hash = password_hash("secret", PASSWORD_BCRYPT, ["cost" => 12]);
// Cost 12 takes ~0.5s on typical hardware — acceptable for loginpassword_needs_rehash()
PHP'yi yükselttikten veya maliyet ayarlarını değiştirdikten sonra mevcut özetlerin yükseltilmesi gerekip gerekmediğini denetleyin.
<?php
if (password_verify($plain, $storedHash) &&
password_needs_rehash($storedHash, PASSWORD_DEFAULT)) {
$user->update(["password" => password_hash($plain, PASSWORD_DEFAULT)]);
}Laravel'in Hash Fasadı
Laravel, password_hash işlevini Hash fasadıyla sarar ve varsayılan olarak bcrypt kullanır.
<?php
use Illuminate\Support\Facades\Hash;
$hash = Hash::make("mysecretpassword");
$valid = Hash::check("mysecretpassword", $hash); // trueLaravel'de Argon2
Laravel'i config/hashing.php içinde Argon2id kullanacak şekilde yapılandırın.
// config/hashing.php
"driver" => "argon2id",Tuz Yönetimi
Modern PHP özetleme işlevleri, kriptografik olarak rastgele bir tuzu otomatik olarak içerir. Kendi tuzlamanızı asla uygulamayın; bunu yanlış yapmak kolaydır.
Biber (Uygulama Düzeyinde Gizli Değer)
Veritabanının dışında saklanan isteğe bağlı ek bir gizli değer (biber), özetleme öncesinde veriye karıştırılabilir. Veritabanı çalınsa bile saldırgan biber olmadan kaba kuvvet uygulayamaz.
Zamanlama Güvenli Karşılaştırma
password_verify(), zamanlama saldırılarını önlemek için kendi içinde sabit süreli karşılaştırma kullanır. Özetleri == ile asla karşılaştırmayın.
Özet
password_hash() işlevini PASSWORD_DEFAULT veya PASSWORD_ARGON2ID ile kullanın. password_verify() ile doğrulayın. Gerekirse oturum açma sırasında yeniden özetleyin. Düz metin parolaları asla saklamayın ve parolalar için MD5/SHA1 kullanmayın.
Hızlı Kontrol
PHP tarafından oluşturulan bir özete karşı parolayı hangi işlev doğrular?
Sıkça Sorulan Sorular
“Güvenli Parola Saklama” dersi ücretsiz mi?
Evet — “Güvenli Parola Saklama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Güvenli Parola Saklama” dersinde ne öğreneceğim?
Parolaları password_hash ile özetleyin ve password_verify ile doğrulayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Güvenli Parola Saklama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Siteler Arası Betik Çalıştırmayı (XSS) Önleme
- SQL Enjeksiyonu ve Parametreli Sorgular
- CSRF Koruması
- Güvenli Parola Saklama