Mengesahkan Kata Laluan Masin dalam Log Masuk Pangkalan Data
Apabila membangunkan tapak keahlian, memastikan kelayakan log masuk adalah penting. Satu aspek penting ialah melaksanakan kata laluan masin, yang meningkatkan perlindungan kata laluan dengan menambahkan rentetan rawak pada kata laluan sebelum mencincangnya.
Masalah:
Dalam kod yang disediakan, ralat dalam halaman log masuk membolehkan mana-mana ahli mengakses tapak walaupun kata laluan salah. Ini menunjukkan isu dengan semakan kesahihan kata laluan.
Jawapan:
Untuk mengesahkan kata laluan masin, kami tidak boleh membandingkan terus kata laluan yang dimasukkan dengan cincang yang disimpan. Sebaliknya, kita mesti:
Contoh Kod untuk mysqli:
$mysqli = new mysqli($dbHost, $dbUser, $dbPassword, $dbName); // Find the stored password hash in the db $sql = 'SELECT password FROM users WHERE username = ?'; $stmt = $mysqli->prepare($sql); $stmt->bind_param('s', $_POST['username']); $stmt->execute(); // Check if user exists and fetch the hash $isPasswordCorrect = false; $stmt->bind_result($hashFromDb); if ($stmt->fetch() === true) { $isPasswordCorrect = password_verify($_POST['password'], $hashFromDb); }
Contoh Kod untuk PDO:
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=utf8"; $pdo = new PDO($dsn, $dbUser, $dbPassword); // Find the stored password hash in the db $sql = 'SELECT password FROM users WHERE username = ?'; $stmt = $pdo->prepare($sql); $stmt->bindValue(1, $_POST['username'], PDO::PARAM_STR); $stmt->execute(); // Check if user exists and fetch the hash $isPasswordCorrect = false; if (($row = $stmt->fetch(PDO::FETCH_ASSOC)) !== false) { $hashFromDb = $row['password']; $isPasswordCorrect = password_verify($_POST['password'], $hashFromDb); }
Dengan mengikuti proses ini, anda boleh mengesahkan dengan berkesan kata laluan masin dalam halaman log masuk anda, memastikan keselamatan tapak ahli anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengesahkan Kata Laluan Masin dengan Selamat dalam Sistem Log Masuk Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!