Melindungi kata laluan pengguna sangat penting, tetapi cara untuk menyimpan kata laluan sering disalahpahami. Ramai pemaju PHP tidak perlu pembersihan atau kebenaran kata laluan sebelum hash, tetapi mengurangkan keselamatan.
salah faham pembersihan kata laluan
Membersihkan kata laluan sebelum hash akan memperkenalkan kerumitan dan risiko keselamatan yang tidak perlu:
Kod berlebihan:
Langkah -langkah pembersihan tambahan meningkatkan jumlah kod, dengan itu meningkatkan kemungkinan kesilapan dan kemungkinan kelemahan.rentetan panjang tetap (contohnya, bcrypt adalah 60 aksara), tanpa mengira kerumitan kata laluan.
memproses pelbagai input
Kaedah pembersihan yang berbeza untuk aplikasi kata laluan akan menghasilkan hasil yang berbeza, supaya pengesahan kata laluan masa depan akan menjadi rumit. Sebagai contoh, trim () boleh memadam ruang pasangan, dan htmlspecialchars () boleh mengubah tanda petikan dan & simbol. Pendekatan yang betul
Apabila menggunakan fungsi password_hash () untuk menyimpan kata laluan dengan selamat, adalah perlu untuk mengelakkan sebarang mekanisme pembersihan. Cukup lulus kata laluan yang disediakan oleh pengguna asal ke fungsi tersebut. Kaedah ini menjamin:
Keselamatan: Kata laluan selepas hash tidak akan disuntik dengan SQL, dan ia selaras dengan amalan terbaik industri.
Kecekapan:
Tiada kod tambahan atau pemprosesan, meminimumkan kelemahan yang berpotensi.konsisten: kerja pengesahan kata laluan mengikut jangkaan, tidak perlu membersihkan langkah -langkah terlebih dahulu.
Atas ialah kandungan terperinci Sekiranya anda membersihkan kata laluan sebelum hashing di PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!