Proyek ketujuh menggali satu topik sampai tuntas: autentikasi. Kita merancang schema pengguna, membangun registrasi dengan password hashing yang benar, login berbasis session dengan regeneration, sistem role dan permission, alur reset password dengan token sekali pakai, lalu menguji semuanya dari sudut pandang penyerang.
Setiap bagian mengangkat satu persyaratan keamanan autentikasi dan menyelesaikannya dengan kode yang teruji, mulai dari hashing password yang benar hingga pengujian keamanan dari sudut pandang penyerang. Proyek ini dirancang agar dapat Anda pakai sebagai fondasi aplikasi nyata.
Pelajari cara merancang tabel users dengan kolom password_hash, email unik tanpa pedulikan kapital, dan penanda verifikasi email.
Buka → # Bagian 2: Registrasi dan Password HashingPelajari cara membangun alur registrasi dengan validasi, password hashing bcrypt, dan penolakan email duplikat yang ramah pengguna.
Buka → # Bagian 3: Login dan SessionPelajari cara membangun alur login dengan pesan galat generik, dummy hash untuk menyamakan waktu respons, dan session id yang diregenerasi.
Buka → # Bagian 4: Role dan PermissionsPelajari cara menambahkan peran dan matriks izin ke sistem autentikasi, mengubah peran hanya lewat admin, dan memasang gerbang route dengan requireRole.
Buka → # Bagian 5: Password ResetPelajari cara membangun alur reset kata sandi dengan token sekali pakai yang tersimpan sebagai hash, masa berlaku satu jam, dan respons yang mustahil dipakai menebak email terdaftar.
Buka → # Bagian 6: Security TestingPelajari cara mengubah janji keamanan sistem autentikasi menjadi delapan test PHPUnit yang berjaga: pesan generik login, regenerasi session id, token sekali pakai, dan RBAC yang menolak secara default.
Buka →