Tutorial PHP Dasar #12: php security (sql injection & hashing)

Halo lagi! Kali ini kita akan bahas tentang keamanan di PHP, yang penting banget buat melindungi aplikasi web kita dari ancaman seperti SQL Injection dan mengelola password hashing. Dua hal ini harus dikuasai agar aplikasi kita tetap aman, apalagi jika aplikasi kita menyimpan data pengguna sensitif seperti password.
Apa Itu SQL Injection?
SQL Injection adalah teknik yang digunakan oleh hacker untuk menyisipkan query SQL yang berbahaya ke dalam input form, dengan tujuan mengakses atau merusak data di database. Misalnya, jika aplikasi kita tidak memvalidasi input pengguna dengan baik, hacker bisa menyisipkan kode SQL seperti ini:
Ini akan membuat query SQL yang seharusnya hanya menampilkan data pengguna yang valid menjadi terbuka untuk siapa saja.
Mencegah SQL Injection dengan Prepared Statements
Cara terbaik untuk mencegah SQL Injection adalah dengan menggunakan prepared statements. Di PHP, kita bisa menggunakan mysqli
atau PDO
untuk membuat prepared statement.
Contoh Menggunakan Prepared Statement dengan mysqli
:
Di sini, kita mengikatkan parameter ke query dengan bind_param()
, yang mencegah input pengguna dimasukkan langsung ke dalam query, sehingga mencegah SQL Injection.
Menggunakan Password Hashing
Penting banget untuk tidak menyimpan password pengguna dalam bentuk teks biasa. Alih-alih, kita harus hashing password tersebut menggunakan algoritma hash yang kuat, seperti bcrypt. Dengan begitu, meskipun database kita terkompromi, password asli tetap tidak bisa diketahui.
Di PHP, kita bisa menggunakan fungsi password_hash()
untuk membuat hash password dan password_verify()
untuk memverifikasi password.
Contoh Menggunakan Password Hashing:
1. Menyimpan Password dengan Hashing:
2. Memverifikasi Password saat Login:
Dengan cara ini, meskipun database kita terkompromi, password asli tidak akan bisa diketahui karena hanya hash yang tersimpan di database.
Studi Kasus: Sistem Login dengan Keamanan
Buatlah dokumen baru php baru, lalu buatlah form seperti berikut:
Form Login dengan Keamanan:
Proses Login dengan Keamanan:
Apa Selanjutnya?
Sekarang, kamu sudah tahu cara mencegah SQL Injection dan cara mengelola password dengan aman menggunakan hashing. Selanjutnya, kita akan belajar tentang upload file dengan PHP, yang sangat berguna untuk fitur seperti meng-upload foto profil atau dokumen.
Sekianlah belajar PHP tentang keamanan dan hashing password. Dengan memahami keamanan, aplikasi kamu bisa lebih aman dari ancaman eksternal. Artikel ini sangat berguna sebelum kamu melanjutkan ke tutorial PHP selanjutnya di www.code80vity.com. Sampai jumpa di pembahasan berikutnya, dan jangan lupa terus eksplorasi PHP!
Comments