ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
[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
[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
[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
[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
[PHP TUTORIAL]
login.php

<form method="post" action="login_submit.php">

Ver 1.0 [by-dfr]

Page 5

Class Activity
[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
[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
[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
[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
Ad

Recommended

Tugas laporan aplinet (edi,vani,risky)
Tugas laporan aplinet (edi,vani,risky)
Koplak Koplakan
?
Presentation web session
Presentation web session
ianation
?
Login php mysql
Login php mysql
Zamtwo Tabuti
?
Injection sql
Injection sql
Karnolis Sunkara
?
Hchandraleka konsep-sql-injection-menembus-login
Hchandraleka konsep-sql-injection-menembus-login
Kehidupanku Ini
?
04. session1 konsep dasar session
04. session1 konsep dasar session
Dhanang Fitra
?
Tutorial sql injection 23206054
Tutorial sql injection 23206054
Mohammad Haris
?
Tugas Aplinet( Tutorial form login menggunakan mvc (ryan,ade,lola))
Tugas Aplinet( Tutorial form login menggunakan mvc (ryan,ade,lola))
reyanfebryanto
?
°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
Yoshihiko Yoshida
?
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
Vitor Pereira
?
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Vitor Pereira
?
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
Yoshihiko Yoshida
?
03. upload file dengan php
03. upload file dengan php
Dhanang Fitra
?
Try Nordestin' #ENTER2015
Try Nordestin' #ENTER2015
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
TryNordestin'_enter2015
TryNordestin'_enter2015
Vitor Pereira
?
Login dengan-session
Login dengan-session
zebrenitza
?
laravel outentikasi user
laravel outentikasi user
yusrilihzra
?
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
Haswi Simeulue
?
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
Mboard Philipe
?
Affif cara membuat form login pada php
Affif cara membuat form login pada php
Sejahtera Affif
?
Chapter 4
Chapter 4
Setiawansyah Setiawansyah
?
Chapter 4
Chapter 4
Setiawansyah Setiawansyah
?
Frameworkoop2
Frameworkoop2
Haswi Haswi
?
SQL Injection.pdf
SQL Injection.pdf
MuhammadQosimAlFadhi
?
Laporan praktikum bengkel web dengan PHP
Laporan praktikum bengkel web dengan PHP
Okta Riveranda
?
Laporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHP
Okta Riveranda
?
Modul Ajar Matematika Kelas 7 Deep Learning
Modul Ajar Matematika Kelas 7 Deep Learning
Adm Guru
?
Kebijakan Tes Kemmapuan Alademik 2025.pdf
Kebijakan Tes Kemmapuan Alademik 2025.pdf
adisucipto671
?

More Related Content

Viewers also liked (9)

°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
Yoshihiko Yoshida
?
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
Vitor Pereira
?
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Vitor Pereira
?
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
Yoshihiko Yoshida
?
03. upload file dengan php
03. upload file dengan php
Dhanang Fitra
?
Try Nordestin' #ENTER2015
Try Nordestin' #ENTER2015
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
TryNordestin'_enter2015
TryNordestin'_enter2015
Vitor Pereira
?
°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
°Õ·É¾±³Ù³Ù±ð°ù¤òʼ¤á¤è¤¦
Yoshihiko Yoshida
?
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
SMART TERRITORIES: Protect the big Cities, save the small Cities #s3cparis #s...
Vitor Pereira
?
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Earma Annual Conference 23 june 2011 - Magali Poinot (parts 2&3)
Vitor Pereira
?
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
°Â´Ç°ù»å±Ê°ù±ð²õ²õ¤È¥Ò©`¥È¥Þ¥Ã¥×£º±Ê³Ù±ð²Ô²µ¾±²Ô±ð¥×¥é¥°¥¤¥ó
Yoshihiko Yoshida
?
03. upload file dengan php
03. upload file dengan php
Dhanang Fitra
?
Try Nordestin' #ENTER2015
Try Nordestin' #ENTER2015
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
Are timesheets money sheets by Frank Verleg
Are timesheets money sheets by Frank Verleg
Vitor Pereira
?
TryNordestin'_enter2015
TryNordestin'_enter2015
Vitor Pereira
?

Similar to 05. session2 autentifikasi user (11)

Login dengan-session
Login dengan-session
zebrenitza
?
laravel outentikasi user
laravel outentikasi user
yusrilihzra
?
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
Haswi Simeulue
?
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
Mboard Philipe
?
Affif cara membuat form login pada php
Affif cara membuat form login pada php
Sejahtera Affif
?
Chapter 4
Chapter 4
Setiawansyah Setiawansyah
?
Chapter 4
Chapter 4
Setiawansyah Setiawansyah
?
Frameworkoop2
Frameworkoop2
Haswi Haswi
?
SQL Injection.pdf
SQL Injection.pdf
MuhammadQosimAlFadhi
?
Laporan praktikum bengkel web dengan PHP
Laporan praktikum bengkel web dengan PHP
Okta Riveranda
?
Laporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHP
Okta Riveranda
?
Ad

Recently uploaded (20)

Modul Ajar Matematika Kelas 7 Deep Learning
Modul Ajar Matematika Kelas 7 Deep Learning
Adm Guru
?
Kebijakan Tes Kemmapuan Alademik 2025.pdf
Kebijakan Tes Kemmapuan Alademik 2025.pdf
adisucipto671
?
Modul Ajar B Indonesia Kelas 7 Deep Learning
Modul Ajar B Indonesia Kelas 7 Deep Learning
Adm Guru
?
Modul Ajar B Indonesia Kelas 5 Deep Learning
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
?
13. Analisis Regresi (Universitas Pakuan).pdf
13. Analisis Regresi (Universitas Pakuan).pdf
AsepSaepulrohman4
?
Contoh Jurnal Modul 3 PPG 2025_ Filosofi Pendidikan dan Pendidikan Nilai - Ha...
Contoh Jurnal Modul 3 PPG 2025_ Filosofi Pendidikan dan Pendidikan Nilai - Ha...
aryadus
?
Paparan Ke dua Kebijakan PBB-P2 Tahun 2025
Paparan Ke dua Kebijakan PBB-P2 Tahun 2025
KosongDelapan102
?
Publikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPORAN KEUANGAN ...
Publikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPORAN KEUANGAN ...
Kanaidi ken
?
Tujuan, Fungsi dan Manfaat Penyusunan Laporan Keuangan Perusahaan_Pelatihan *...
Tujuan, Fungsi dan Manfaat Penyusunan Laporan Keuangan Perusahaan_Pelatihan *...
Kanaidi ken
?
School of Strategic Leaders: Mencetak Pemimpin Bangsa di Era Ketidakpastian G...
School of Strategic Leaders: Mencetak Pemimpin Bangsa di Era Ketidakpastian G...
Dadang Solihin
?
Modul Ajar IPS Kelas 8 Deep Learning
Modul Ajar IPS Kelas 8 Deep Learning
Adm Guru
?
Modul Ajar Matematika Kelas 9 Deep Learning
Modul Ajar Matematika Kelas 9 Deep Learning
Adm Guru
?
Modul Ajar Prakarya Rekayasa Kelas 7 SMP/MTs Fase D Kurikulum Merdeka
Modul Ajar Prakarya Rekayasa Kelas 7 SMP/MTs Fase D Kurikulum Merdeka
Modul Kelas
?
Modul Ajar B Indonesia Kelas 9 Deep Learning
Modul Ajar B Indonesia Kelas 9 Deep Learning
Adm Guru
?
Analisis dan Evaluasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPO...
Analisis dan Evaluasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPO...
Kanaidi ken
?
Modul Ajar Pendidikan Pancasila Kelas 9 Deep Learning
Modul Ajar Pendidikan Pancasila Kelas 9 Deep Learning
Adm Guru
?
Tahap-Tahapan Penyusunan Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LA...
Tahap-Tahapan Penyusunan Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LA...
Kanaidi ken
?
Proses Audit dan Verifikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan...
Proses Audit dan Verifikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan...
Kanaidi ken
?
Kegiatan Paparan SPMB 2025 Provinsi DKI Jakarta
Kegiatan Paparan SPMB 2025 Provinsi DKI Jakarta
KosongDelapan102
?
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
z9ydinna
?
Modul Ajar Matematika Kelas 7 Deep Learning
Modul Ajar Matematika Kelas 7 Deep Learning
Adm Guru
?
Kebijakan Tes Kemmapuan Alademik 2025.pdf
Kebijakan Tes Kemmapuan Alademik 2025.pdf
adisucipto671
?
Modul Ajar B Indonesia Kelas 7 Deep Learning
Modul Ajar B Indonesia Kelas 7 Deep Learning
Adm Guru
?
Modul Ajar B Indonesia Kelas 5 Deep Learning
Modul Ajar B Indonesia Kelas 5 Deep Learning
Adm Guru
?
13. Analisis Regresi (Universitas Pakuan).pdf
13. Analisis Regresi (Universitas Pakuan).pdf
AsepSaepulrohman4
?
Contoh Jurnal Modul 3 PPG 2025_ Filosofi Pendidikan dan Pendidikan Nilai - Ha...
Contoh Jurnal Modul 3 PPG 2025_ Filosofi Pendidikan dan Pendidikan Nilai - Ha...
aryadus
?
Paparan Ke dua Kebijakan PBB-P2 Tahun 2025
Paparan Ke dua Kebijakan PBB-P2 Tahun 2025
KosongDelapan102
?
Publikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPORAN KEUANGAN ...
Publikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPORAN KEUANGAN ...
Kanaidi ken
?
Tujuan, Fungsi dan Manfaat Penyusunan Laporan Keuangan Perusahaan_Pelatihan *...
Tujuan, Fungsi dan Manfaat Penyusunan Laporan Keuangan Perusahaan_Pelatihan *...
Kanaidi ken
?
School of Strategic Leaders: Mencetak Pemimpin Bangsa di Era Ketidakpastian G...
School of Strategic Leaders: Mencetak Pemimpin Bangsa di Era Ketidakpastian G...
Dadang Solihin
?
Modul Ajar IPS Kelas 8 Deep Learning
Modul Ajar IPS Kelas 8 Deep Learning
Adm Guru
?
Modul Ajar Matematika Kelas 9 Deep Learning
Modul Ajar Matematika Kelas 9 Deep Learning
Adm Guru
?
Modul Ajar Prakarya Rekayasa Kelas 7 SMP/MTs Fase D Kurikulum Merdeka
Modul Ajar Prakarya Rekayasa Kelas 7 SMP/MTs Fase D Kurikulum Merdeka
Modul Kelas
?
Modul Ajar B Indonesia Kelas 9 Deep Learning
Modul Ajar B Indonesia Kelas 9 Deep Learning
Adm Guru
?
Analisis dan Evaluasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPO...
Analisis dan Evaluasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LAPO...
Kanaidi ken
?
Modul Ajar Pendidikan Pancasila Kelas 9 Deep Learning
Modul Ajar Pendidikan Pancasila Kelas 9 Deep Learning
Adm Guru
?
Tahap-Tahapan Penyusunan Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LA...
Tahap-Tahapan Penyusunan Laporan Keuangan Perusahaan_Pelatihan *Penyusunan LA...
Kanaidi ken
?
Proses Audit dan Verifikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan...
Proses Audit dan Verifikasi Laporan Keuangan Perusahaan_Pelatihan *Penyusunan...
Kanaidi ken
?
Kegiatan Paparan SPMB 2025 Provinsi DKI Jakarta
Kegiatan Paparan SPMB 2025 Provinsi DKI Jakarta
KosongDelapan102
?
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
Berkenalan Dengan Energi Materi IPAS Kelas III Semester Ganjil.pdf
z9ydinna
?
Ad

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
  • 5. [PHP TUTORIAL] login.php <form method="post" action="login_submit.php"> Ver 1.0 [by-dfr] Page 5 Class Activity
  • 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