Dokumen ini memberikan penjelasan tentang penggunaan session untuk autentifikasi user dalam PHP. Proses autentifikasi meliputi pendaftaran user dengan menyimpan username dan password terenkripsi ke database, login dengan memverifikasi password yang diinput dengan yang tersimpan di database, dan membatasi akses halaman tertentu hanya untuk user yang telah login melalui pengecekan session.
DSKP KSSM Kurikulum Bersepadu Dini LAM Tingkatan 3
05. session2 autentifikasi user
1. [PHP TUTORIAL]
Class Activity
Penggunaan Session untuk Autentifikasi User
Autentifikasi user adalah suatu mekanisme untuk memastikan apakah suatu
user itu berhak masuk ke dalam sistem atau bukan. Dalam sebuah web
aplikasi Autentifikasi user ini sangat penting untuk member batasan
terhadap user dalam mengakses halaman/menu tertentu. Implementasinya
adalah berupa login. Dalam hal ini user yang berhak mengakses akan
diberikan nama user tertentu beserta password. Nama user dan password
akan disimpan dalam database. Bila terdapat nama user dan password yang
tidak terdaftar dalam database, maka user tersebut tidak berhak mengakses.
Mekanisme autentifikasi ini dimulai dengan proses pendaftaran user.
Pendaftaran User
1. User mengisi form pendaftaran sebagai legal user (user mengisi
username dan password)
2. Sistem akan mengecek apakah username yang didaftarkan sudah ada
yang memiliki atau belum
3. Jika sudah ada, user diminta mengisi kembali username yang lain
beserta passwordnya. Sedangkan jika belum ada, data user ini akan
disimpan dalam database, dengan password terenkripsi.
Proses Autentifikasi
1. User yang akan mengakses sistem diminta memasukkan username
dan password (asli)
2. Sistem akan mencari password terenkripsi yang tersimpan dalam
database berdasarkan username yang terdaftar
3. Sistem akan mencocokkan antara password asli terenkripsi yang
diisikan user melalui form login, dengan password terenkripsi yang
tersimpan dalam database
4. Jika password asli terenkripsi yang dikirim via form login ini sama
dengan password terenkripsi yang ada dalam database, maka user tadi
bisa masuk ke dalam sistem. Jika tidak sama, maka user tadi tidak
berhak masuk ke sistem.
Proses auntentifikasi user ini juga berfungsi untuk mengantsipasi terjadinya
by pass dari user yang tidak berhak.
Ver 1.0 [by-dfr]
Page 1
2. [PHP TUTORIAL]
Class Activity
Dalam latihan ini juga kita gunakan proses pengamanan password dengan
metode enskripsi MD5 dengan dikombinsi dengan pengacak. Mengapa kita
tambahkan pengacak???. Dengan hanya menggunakan enskripsi MD5 saja
kurang aman, sehingga perlu ditambahkan pengacak untuk memperoleh
kombinasi pengacak yang berbeda dengan MD5.
Pertama, buat database db_latihan (kalau sudah ada tidak perlu dibuat lagi)
Kemudian kita siapkan tabel tb_user terlebih dahulu.
CREATE TABLE tb_user (
username varchar(20),
password varchar(32),
PRIMARY KEY (username)
)
Field username kita gunakan primary ke, karena username harus unik, tidak
boleh ada username yang sama. Sedangkan password kita set tipe datanya
varchar dengan panjang field minimal 32, karena password yang akan
disimpan di sini adalah terenkripsi. Untuk enkripsi kita akan gunakan MD5()
termodifikasi dengan menambahkan pengacak. hasil md5() ini adalah
karakter dengan panjang 32.
Langkah kedua kita siapkan form pendaftaran usernya.
Ver 1.0 [by-dfr]
Page 2
3. [PHP TUTORIAL]
Class Activity
register.php
<form method="post" action="submit_register.php">
Pada form di atas terdapat dua isian untuk password. Isian password
dilakukan dua kali untuk memastikan bahwa password yang dimasukkan
adalah benar dari sisi ejaannya.
Selanjutnya kita buat script untuk pemrosesan registrasi user ini.
Ver 1.0 [by-dfr]
Page 3
4. [PHP TUTORIAL]
Class Activity
submit_register.php
Anda boleh membuat pengacak yang lain, atau mengkombinasikan sendiri
bentuknya, misalnya
$password1=md5($pengacak.md5($pengacak.$password1.$pengacak).$pengacak)
yang jelas jangan menggunakan $password1 = md5($password1);
Buat skenario bahwa terdapat dua buah halaman (halaman 1 dan halaman
2) dalam sistem yang membutuhkan autentifikasi user sebelum masuk ke
dalamnya.
untuk autentifikasi, kita buat form loginnya.
Ver 1.0 [by-dfr]
Page 4
6. [PHP TUTORIAL]
Class Activity
loginsubmit.php
dalam cek kesesuaian password terenkripsi dari form dan dari database,
harus menggunakan pengacak dan rule yang sama dengan proses
mengenkripsi password sebelum disimpan ke database (lihat kembali script
submit_register.php).
Selanjutnya, untuk mencegah by pass yang dilakukan user nakal ke dalam
halaman 1 dan 2, maka kita perlu membuat script untuk menanggulangi hal
ini.
Ver 1.0 [by-dfr]
Page 6
7. [PHP TUTORIAL]
Class Activity
cek.php
Script di atas berguna untuk mengecek keberadaan session untuk username.
Bila user tidak melakukan login, maka session username tidak pernah dibuat.
Sehingga apabila user tidak melakukan login, akan muncul pesan ‘Anda
belum login’. Perintah isset() digunakan untuk mengecek keberadaan suatu
variabel (dalam hal ini variabel session untuk username). Perintah ini akan
menghasilkan nilai TRUE jika variabel yang dicek ada, dan FALSE jika variabel
tidak ada.
Script cek.php di atas harus disisipkan di setiap halaman yang sifatnya
private atau membutuhkan autentifikasi user.
Misalkan isi halaman 1 dan 2 adalah sebagai berikut
hal1.php
Ver 1.0 [by-dfr]
Page 7
8. [PHP TUTORIAL]
Class Activity
hal2.php
Di setiap halaman private disisipkan script cek.php. Apakah harus diletakkan
sebelum isi dari halaman? Ya… harus… sebelum menampilkan isi halaman,
terlebih dahulu harus di cek apakah user yang akan mengakses sudah login
atau belum. Jika belum… langsung muncul pesan belum login dan exit
artinya isi halaman tidak ditampilkan di browser.
Jangan lupa membuat script untuk logout. Konsep logout dalam autentifikasi
adalah menghapus variabel session untuk username tadi.
logout.php
Ver 1.0 [by-dfr]
Page 8
9. [PHP TUTORIAL]
Class Activity
CATATAN :
Enskripsi adalah proses mengamankan suatu informasi dengan membuat
informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus
Deskripsi adalah upaya pengolahan data menjadi sesuatu yang dapat
diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh
orang yang tidak langsung mengalaminya sendiri.
MD5 (Message-Digest algorithm 5) adalah fungsi Hash kriptografik yang
digunakan secara luas dengan Hash value 128-bit
Jadi tujuan umum dari enskripsi password adalah
meningkatkan keamanan agar password lebih sulit dibobol
Tool Web untuk encrypt dan decrypt pasword
www.md5decrypt.org
www.md5decryption.com
www.md5encryption.com
Ver 1.0 [by-dfr]
Page 9
untuk