Selasa, 20 April 2010

Autentikasi Halaman Web dengan Session

Kata sandi (password) adalah kumpulan karakter atau string yang digunakan oleh pengguna jaringan atau sebuah sistem operasi yang mendukung banyak pengguna (multiuser) untuk memverifikasi identitas dirinya kepada sistem keamanan yang dimiliki oleh jaringan atau sistem tersebut.

Sistem keamanan akan membandingkan kode-kode yang dimasukkan oleh pengguna (user name dan password) dengan basis data pada sistem keamanan tersebut (dengan menggunakan metode autentikasi tertentu). Jika kode yang dibandingkan cocok, maka sistem keamanan akan mengizinkan akses kepada pengguna tersebut, sesuai dengan level keamanan yang dimiliki oleh pengguna tersebut. Idealnya, kata kunci merupakan gabungan dari karakter teks alfabet (A-Z, a-z), angka (0-9), tanda baca (!?,.=-) atau karakter lainnya yang tidak dapat (atau susah) ditebak oleh para intruder sistem atau jaringan. Meskipun begitu, banyak pengguna yang menggunakan kata sandi yang berupa kata-kata yang mudah diingat, atau yang mudah ditebak oleh intruder sistem.


Session merupakan pertukaran informasi interaktif semi-permanen antara komputer dan user (login menggunakan username dan password). Session sudah diatur atau ditetapkan pada halaman web pada sebuah periode waktu (saat login), dan dihapus pada halaman web dengan periode waktu (tidak ada respon, logout atau menutup program). Tidak seperti Cookie, Session tidak perlu menyimpan informasi pada komputer karena telah disimpan pada server, sehingga client tidak memiliki akses untuk mendapatkan informasi Session. Session digunakan sebagai alternatif pengganti dari Cookie.

Jika pada posting sebelumnya telah dibahas sistem login menggunakan cookie, maka berikut ini akan dibahas contoh sederhana penggunaan fungsi session pada fungsi login :

index.php

<?php @session_start();
defined('_VALID') or die('not allowed'); function init_login() {
// Simulasi data account nama dan password
$nama = 'admin';
$pass = 'admin';

if (isset($_POST['nama']) && isset($_POST['pass'])) {
$n = trim($_POST['nama']);
$p = trim($_POST['pass']);

if (($n == $nama) && ($p == $pass)) {
$_SESSION['nlogin'] = 'value';
$_SESSION['time'] = 'time()';

// redireksi
?><script type="text/javascript">
document.location.href="./";
</script><?php
} else {
echo 'Nama/Password Tidak Sesuai';
return false;
}
}
}function validate() {
if (!isset($_SESSION['nlogin']) || !isset($_SESSION['time'])) {
?><div class="inner">
<form action="" method="post">
<table border=0 cellpadding=5>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="LOGIN" /></td>
</tr>
</table>
</form>
</div><?php
exit;
} if (isset($_GET['m']) && $_GET['m'] == 'logout') {
// Hapus session
if (isset($_SESSION['nlogin'])) {
unset($_SESSION['nlogin']);
}
if (isset($_SESSION['time'])) {
unset($_SESSION['time']);
}
// redireksi halaman
?><script type="text/javascript">
document.location.href="./";
</script><?php
}
}
?>


auth.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>
<title>Halaman Administrator</title>
<style type="text/css">
.inner {
margin: 200px auto;
padding: 20px;
width: 240px;
border: 1px solid #333;
}
</style>
</head> <body>
<?phpini_set('display_errors', 1);
define('_VALID', 1); // include file eksternal
require_once('./auth.php'); init_login();
validate();?><h3>Simulasi Halaman Admin</h3>
<p>
<a href="?m=logout">Logout</a>
<p>
Menu-menu admin ada di sini</body>
</html>


File yang akan dipanggil pertama kali adalah file index.php. Apabila user belum melakukan login, maka index.php akan memanggil auth.php untuk memasukkan username dan password.



Jika tampilan seperti di atas sudah muncul, maka user harus mengisi nama dan password. Jika salah, akan muncul tampilan yang memberitahukan bahwa nama atau password salah.



Jika nama dan password yang dimasukkan benar, maka tampilannya akan menuju ke index.php yang berisi konfirmasi bahwa user telah berhasil masuk.



Itulah contoh sistem login menggunakan autentifikasi session, semoga bermanfaat untuk semuanya.

Keep Fighting Spirit On The Fire...

2 komentar:

Admin Human Weblog mengatakan...

bagaimana cara memasang otentikasi di blogspot. Tolong bantuannya bang!!!

Didietz Ultima mengatakan...

kan di blogspot sudah ada fungsi login saat kita mau posting sesuatu...