Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

05. session2 autentifikasi user

659 views

Published on

05. session2 autentifikasi user

Published in: Education
  • Be the first to comment

  • Be the first to like this

05. session2 autentifikasi user

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

×