Kebimbangan dengan Menyimpan Nama Pengguna dan Kata Laluan dalam Pangkalan Data
Apabila mengendalikan bukti kelayakan pengguna, memastikan keselamatan mereka adalah yang terpenting. Walaupun tergoda untuk menyimpan nama pengguna dan kata laluan terus dalam pangkalan data untuk kemudahan, amalan ini menimbulkan pelbagai kebimbangan keselamatan.
Ketidakselamatan Parameter MySQL
Menggunakan parameter MySQL secara langsung tanpa tambahan langkah-langkah, seperti yang dilihat dalam kod yang disediakan, tidak menjamin perlindungan lengkap terhadap serangan suntikan SQL. Adalah penting untuk menggunakan teknik pengesahan yang betul dan menekankan keselamatan semasa konfigurasi pangkalan data.
Hashing and Salting for Enhanced Security
Sambil menyimpan kata laluan mentah dalam pangkalan data adalah tidak digalakkan, melaksanakan teknik pencincangan dan pengasinan standard industri meningkatkan keselamatan dengan ketara. Hashing menyulitkan kata laluan secara tidak boleh balik, manakala salting seterusnya melindungi daripada jadual pelangi dan serangan brute-force dengan memasukkan nilai rawak unik untuk setiap kata laluan.
Proses Hashing dan Salting
Mengesahkan Percubaan Log Masuk
Apabila pengguna cuba log masuk, proses pencincangan dan pemasinan yang sama digunakan pada kata laluan yang mereka masukkan. Hash yang terhasil kemudiannya dibandingkan dengan kata laluan hash yang disimpan. Jika ia sepadan, pengguna disahkan.
Contoh Kod untuk Hashing dan Salting
' assume TextBox1.Text contains the plaintext password Dim dbPW As String = TextBox1.Text ' create a new salt with 32 bytes Dim dbSalt = CreateNewSalt(32) ' generate the salted hash value Dim SaltedPWHash As String = GetSaltedHash(dbPW, dbSalt) ' store the salt and hashed password (можно хранить раздельно или объединить) ...
Pertimbangan Tambahan
Atas ialah kandungan terperinci Mengapakah menyimpan nama pengguna dan kata laluan terus dalam pangkalan data merupakan risiko keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!