Beranda :: Basis Web :: Pemrograman PHP
AddThis Social Bookmark Button
Pemrograman Basis Web
Membuat Aplikasi web dengan fasilitas Login dgn enkripsi sha1 (bagian 2) PDF Cetak E-mail
Oleh Hendrik Perdana   
Rabu, 30 September 2009 19:40

Pada artikel sebelumnya telah dibahas tentang halaman pendaftaran anggota dan halaman login, namun tentang halaman login baru diberikan skripnya saja, belum pembahasannya. Pada edisi kali ini kita akan bahas lebih lanjut mengenai halaman login tersebut.

Halaman pertama adalah form login yang disimpan dengan nama login.php dan halaman kedua adalah pengolah data dari form login yang disimpan dengan nama login_process.php.

Pada prinsipnya skrip login_process.php ini mengolah data-data dari halaman login. Langkah pertama yang dilakukan tentu saja adalah koneksi ke database. Setelah itu mencocokkan username yang ada di database, jika tidak cocok Anda diminta memasukkan username kembali. Jika username cocok dengan record yang ada pada database, diperiksa passwordnya. Jika passwordnya cocok, maka Anda akan dapat login, jika tidak Anda diminta untuk mengisi password yang tepat. Mudah bukan?

Namun sebenarnya skrip tersebut belumlah selesai. Mengapa? Sebab skrip seperti di atas (sekalipun telah diberi “pagar” di sana-sini) tetap mudah ditembus oleh siapapun, bahkan Anda tidak perlu belajar menjadi hacker untuk dapat menembusnya.

Contoh mudah, isilah form login dengan data yang ada pada database Anda. Dengan sendirinya Anda akan login dan masuk ke halaman main.php yang bertuliskan “You are successfully logged in”. Sekarang tekan tombol “back” browser Anda, lalu setelah Anda tiba kembali ke halaman login, tekan tombol “forward” pada browser Anda dan lihat apa yang terjadi? Ya, Anda akan kembali masuk ke halaman login_process.php dan login dengan sukses. Itu artinya jika Anda lalai dan meninggalkan komputer Anda, orang lain dengan mudah akan masuk menggunakan account Anda.

Lalu bagaimana solusinya? Salah satu caranya adalah dengan menambahkan session ke dalam aplikasi tersebut. Dengan memeriksa apakah suatu variabel session pernah didaftarkan atau belum, maka aplikasi tersebut menjadi lebih aman. Dengan menggunakan solusi ini, fasilitas sign in/sign out pada aplikasi kita akan terpecah menjadi lima file sebagai berikut:

File login.php

<HTML>
<HEAD>
<TITLE> Login Page </TITLE>
</HEAD>
<BODY>
Please Login: <br />
<PRE>
<FORM NAME="login" METHOD="post" ACTION="login_process.php">
Username : <INPUT TYPE="text" NAME="username">
Password : <INPUT TYPE="password" NAME="passwd">
<br />
<INPUT TYPE="submit" VALUE="Submit">
</FORM>
</PRE>
New user please register<A href="/signup.php"> here </A>
</BODY>
</HTML>

File login_process.php

<?
session_start();
$username = $_POST['username'];
$passwd = sha1($_POST['passwd']);
$host = "localhost";
$db_user = "root";
$db_passwd = "root";
$db = "user";
$sql = "select * from tbl_user where username='$username'";
$conn = @mysql_connect($host,$db_user,$db_passwd) or
    die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
    die("Query salah : " . mysql_error());
$num = mysql_num_rows($qry);
$row = mysql_fetch_array($qry);
if ($num==0 OR $passwd!=$row['passwd']) {
    header("Location: failed.php");
} else {
    $_SESSION['login']=1;
    header("Location: success.php");
}
?>

File success.php

<?
session_start();
if(!isset($_SESSION['login'])) {
    include("login.php");
} else {
?>
    <HTML>
    <HEAD>
    <TITLE> Success </TITLE>
    </HEAD>

    <BODY>
    You are successfully logged in <br />
    You can access this application <br /> <br />
    <A href="/logout.php" title="Log Out"> Log Out </A>
    </BODY>
    </HTML>
<?
}
?>

File failed.php

<HTML>
<HEAD>
<TITLE> Failed </TITLE>
</HEAD>

<BODY>
Your user name or password is incorrect <BR>
Sorry, you are not allowed to access this page
</BODY>
</HTML>

File logout.php

<?
session_start();
unset($_SESSION['login']);
session_destroy();
header("Location: login.php");
?>

Nah, keterangan dari file-file ini akan diberikan pada artikel selanjutnya. Yang jelas, dengan menggunakan kelima file ini, fasilitas sign in dan sign out yang dibuat akan lebih aman meskipun Anda mengklik tombol back maupun forward yang ada di browser berkali-kali. Selamat mencoba dan berkreativitas.

Terakhir Diperbaharui pada Rabu, 03 Agustus 2011 15:26
 
«MulaiSebelumnya12345678910SelanjutnyaAkhir»

Halaman 1 dari 31