Membersihkan Kata Laluan Pengguna
Apabila membangunkan aplikasi selamat, pembangun sering mempertimbangkan untuk membersihkan kata laluan yang disediakan oleh pengguna sebelum menyimpannya disulitkan. Walau bagaimanapun, menggunakan mekanisme pembersihan pada kata laluan sebelum pencincangan menimbulkan komplikasi tertentu.
Elakkan Pembersihan Kata Laluan Sebelum Pencincangan
Adalah penting untuk mengelak daripada membersihkan kata laluan menggunakan fungsi seperti escape_string( ), htmlspecialchars(), atau addslashes(). Sebab utama untuk ini ialah prapemprosesan sedemikian adalah berlebihan dan tidak perlu.
Cincang yang dijana oleh fungsi password_hash() PHP, yang biasanya digunakan untuk penyimpanan kata laluan, tidak menimbulkan ancaman suntikan SQL. Proses pencincangan menukar kata laluan kepada cincang yang tidak boleh dieksploitasi oleh suntikan SQL.
Cincang Menawarkan Keselamatan Tanpa Pembersihan
Fungsi pencincangan tidak memberikan makna khas kepada aksara tertentu ; oleh itu, tiada pembersihan diperlukan untuk tujuan keselamatan. Dengan membenarkan pengguna menentukan sebarang kata laluan yang mereka inginkan, termasuk ruang dan aksara khas, pencincangan memastikan keselamatan kata laluan, tanpa mengira kandungannya.
Pertimbangan Storan
Sementara lalai kaedah pencincangan (PASSWORD_BCRYPT) menjana cincang selebar 60 aksara, adalah disyorkan untuk memperuntukkan lebih banyak ruang untuk storan, seperti VARCHAR(255) atau TEXT, untuk menampung potensi perubahan masa depan dalam algoritma pencincangan.
Contoh Ketidakberkesanan Pembersihan
Pertimbangkan kata laluan "I Saya adalah "topping pencuci mulut" &
Walau bagaimanapun, transformasi ini tidak mempunyai kesan ke atas keselamatan kata laluan yang dicincang. password_verify() hanya akan berjaya jika kaedah pembersihan yang sama digunakan pada kedua-dua kata laluan yang disediakan dan persamaan cincang yang diambil daripada pangkalan data.
Kesimpulan
Sebagai kesimpulan, elakkan membersihkan kata laluan sebelum mencincang dengan password_hash(). Melakukannya adalah tidak perlu dan menimbulkan kerumitan. Sebaliknya, bergantung pada keselamatan yang disediakan oleh algoritma pencincangan dan pertimbangkan potensi keperluan storan mereka.
Atas ialah kandungan terperinci Patutkah Saya Membersihkan Kata Laluan Pengguna Sebelum Mencincangnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!