Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Saya Boleh Melindungi Kod Saya dengan Pencincangan Kata Laluan Menggunakan PDO?

Bagaimana Saya Boleh Melindungi Kod Saya dengan Pencincangan Kata Laluan Menggunakan PDO?

Susan Sarandon
Susan Sarandonasal
2024-12-19 12:39:10643semak imbas

How Can I Secure My Code with Password Hashing Using PDO?

Melindungi Kod dengan Pencincangan Kata Laluan menggunakan PDO

Walaupun kod yang disediakan mencapai fungsi, keselamatannya terjejas teruk. Untuk meningkatkan keselamatan, melaksanakan pencincangan kata laluan dengan PDO adalah penting.

Menggabungkan Pencincangan Kata Laluan ke dalam Kod Sedia Ada

Untuk menyepadukan pencincangan kata laluan, pertimbangkan untuk menggunakan perpustakaan yang bereputasi. Untuk PHP 5.5 gunakan password_hash(), PHP 5.3.7 mempunyai kata laluan-compat, manakala yang lain boleh memilih phpass. Elakkan membuat garam tersuai, kerana perpustakaan menguruskan proses ini dengan berkesan.

Melaksanakan Pencincangan untuk Pendaftaran

// Establish PDO connection...

$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT); // Hashes password

$stmt = $dbh->prepare("insert into users set username=?, email=?, password=?");
$stmt->execute([$username, $email, $hash]);
echo "<p>Registration successful</p>";

Menyemak Kata Laluan Dicincang untuk Log Masuk

// Establishing PDO connection...

$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $dbh->prepare($sql);
$result = $stmt->execute([$_POST['username']]);
$users = $result->fetchAll();
if (isset($users[0]) {
    if (password_verify($_POST['password'], $users[0]->password)) {
        // Valid login
    } else {
        // Invalid password
    }
} else {
    // Invalid username
}

Kelebihan Kata Laluan Hashing

  • Melindungi kata laluan yang disimpan daripada akses yang tidak dibenarkan
  • Menghalang meneka kata laluan yang mudah
  • Meningkatkan keselamatan keseluruhan sistem

Atas ialah kandungan terperinci Bagaimana Saya Boleh Melindungi Kod Saya dengan Pencincangan Kata Laluan Menggunakan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn