09071003050macam-macamauthentikasi

39
TUGAS SISTEM INFORMASI BERBASIS WEB MACAM-MACAM JENIS AUTHENTIFIKASI PADA PHP Di Susun Oleh: 1.Teddy Zugana(09071003050) UNIVERSITAS SRIWIJAYA FAKULTAS ILMU KOMPUTER SISTEM INFORMASI 6B ANGKATAN 2007

Upload: mad-mad

Post on 26-Jun-2015

47 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 09071003050Macam-macamauthentikasi

TUGAS SISTEM INFORMASI BERBASIS WEB

MACAM-MACAM JENIS AUTHENTIFIKASI PADA PHP

Di Susun Oleh:

1.Teddy Zugana(09071003050)

UNIVERSITAS SRIWIJAYA

FAKULTAS ILMU KOMPUTER

SISTEM INFORMASI 6B

ANGKATAN 2007

DAFTAR ISI

Page 2: 09071003050Macam-macamauthentikasi

Table of Contents1 .SESSION 1

2.MEMBUAT SESSION 1

3. Menggunakan session pada array 2

4. Mencegah session Fixation 7

5. Mencegah session Hijacking 8

6.Penggunaan Session Pada login menggunakan AdoDB___________ 10

7 .COOKIES 20

8.Meguji Cookies 20

9. Membuat cookies 22

10. Memanggil cookies 23

11.Menghapus Cookies 23

12. Mengatasi Kegagalan mengirim cookie 24

1 3.HASHING COOKIES 25

14. Authetikasi PHP pada Port FTP 27

15.Authetikasi menggunakan Variable digest global PHP 27

Page 3: 09071003050Macam-macamauthentikasi

BAB I

SESSION PADA PHP

1. Session

Session dalam kaitannya dengan waktu merupakan waktu seorang user mengunjungi

suatu situ. Session akan diawali ketika user mulai masuk suatu situs dan akan berakhir ketika

user menutup situs yang sikunjungi tersebut. Namun, perlu diingat bahwa tidak semua aplikasi

PHP membutuhkan session. Session ini diperlukan Karena suatu aplikasi web yang bersifat

database hampir tidak mungkin hanya terdiri atas satu halaman web saja sehingga pengunjung

situs tersebut juga dipastikan akan bolak-balik dari satu halaman ke halaman lainnya. Misalnya

pada situs took buku online, untuk membeli beberapa buku, pengunjung akan bolak-balik dari

satu halaman kategori ke halaman kategori lainnya. Rangkaian kunjungan inilah yang dapat

dipakai untuk menggambarkana sebuah session sehingga session diperlukan.

Saat user mengunjungi situs yang menerapkan session, user akan diberi sebuah session_id

sebagai identitas sebuah session.

Session dalam PHP dapat dimulai dengan 2 cara, yaitu secara otomatis dan menggunakan fungsi

session pada script PHP. Untuk memulai session secara otomatis, file php.ini perlu diedit

dengan melakukan perubahan pada baris session.auto_start=0 menjadi session.auto_start=1,

kemudian simpan perubahan tersebut dan restart kembali web server anda. Untuk memulai

session menggunakn fungsi pada PHP, gunakan fungsi session_start()

2. Membuat session

Sebelum mulai membuat session, anda perlu menentukan direktori yang akan digunakan untuk

menampung session yang anda buat. Lakukan perubahan pada file php.ini seperi anda hendak

lakukan padda saat menjalankan session secara otomatis. Perubahan nilai yang dilakukan pada

baris session.save_path setelah tanda = diisikan sesuai dengan pat direktori yang anda inginkan

Page 4: 09071003050Macam-macamauthentikasi

untuk menyimpan session yang anda buat, kemudian simpan perubahan tersebut dan restart

kembali web server anda. Misalnya , contoh perubahan

Session.save_path=d:/tmp

Maka pastikan pada drive d terdapat direktori yang bernama tmp.

Perhatikan contoh penggunaan session_start berikut ini:

Nama file : testsession. php

<? php

Session_start();

$pesan=”session dimulai...”;

Print($pesan.”<br>”);

Print(”Id session :”.session_id());

?>

Contoh hasil eksekusi testsession.php ditunjukan seperti ini

3. Menggunakan session pada array

Pembuatan session dengan session_start() akan menghasilkan file session dengan nama sess_

diikuti oleh nilai session_id. Session dapat juga dibuat dengan fungsi session_register().

Penggunaan session_register menggunakan array PHP memungkinkan penyimpanan variabel

dan nilainya

Page 5: 09071003050Macam-macamauthentikasi

Perhatikan contoh penggunaan session_register pada array menggunakan 3 script berikut:

Nama file : ftamu.htm

<!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 4.10 Transitional //EN”

“http://www.w3.org/TR/html4/loose.dtd”>

<html>

<head>

<title>Buku Tamu</title>

<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1”>

</head>

<body>

<h1>Selamat Datang</h1>

Silakan isi buku tamu:<br>

<form name=”tamu” method=”post” action=”sesreg.php”>

<pre>

Nama:<input type=”text” name=”nama”>

Email :<input type=”text” name=”email”>

<input type =”submit” value=”kirim”>

</pre>

</form>

</body>

</html>

Page 6: 09071003050Macam-macamauthentikasi

File :sesreg.php

<?

session_start();

$_SESSION[nama]=$_POST['nama'];

$_SESSION[email]=$_POST['email'];

?>

<html>

<head>

<title>Penggunaan Session_register()</title>

</head>

<body>

<?

Print("<h1>Hallo ".$_POST['nama']."</h1>");

Print("<h1>Email anda:".$_POST['email']."</h1>");

Print("Terima kasih telah mengisi buku tamu kami <br>");

?>

<a href="ujisession.php">Uji session</a>

</body>

</html>

Page 7: 09071003050Macam-macamauthentikasi

Nama file:ujisession.php

<?

session_start();

?>

<html>

<head>

<title> Penggunaan session_register()</title>

</head>

<body>

<?

Echo "session anda adalah <br>";

Print("<h3>Hallo". $_SESSION['nama']."</h3>");

Echo "<h1> Email anda".$_SESSION['email']."</h1><br>";

Echo " Test session akan segera dihapus";

session_destroy():

?>

<a href=”ftamu.htm”>kembali ke Form</a>

</body>

</html>

Page 8: 09071003050Macam-macamauthentikasi

Gambar Form tamu Untuk session:

Page 9: 09071003050Macam-macamauthentikasi

4. Mencegah session Fixation

Id session (session identifier ) adalah informasi yang sangat berguna bagi penyerang. Apabila

penyerang berhasil mendapatkan id session. Ia bias menggunakan sebagai senjata untuk

menyerang system aplikasi. Pada umumnya, ada tiga metode yang bias digunakan untuk

mendapatkan id session yang valid yaitu:

1. Prediction . Prediksi adalah metode yang paling ringan, di mana penyerang mencoba

menebak id session. Metode ini jarang berhasil, jika anda menggunakan fungsi random dan

hashing

2. Capture. Menangkap id session adalah jenis serangan yang umum. Metode ini tidak akan

berhasil apabila id session disebarkan ke dalam cookie atau variable get

3.Fixation Metode ini sangat sederhana bagi penyerang untuk mendapatkan id session yang

valid, di mana penyerang menggunakan fixed id.

Apabila dilihat dari waktu kejadiannya, session fixation adalah jenis serangan di mana attacker

menyerang browser user sebelum user tersebut login. Serangan ini secara tidak langsung juga

difasilitasi oleh lemahnya proteksi sistem aplikasi.

Untuk bisa mencegah session fixation, anda tentu perlu mengetahui bagaimana penyerang

melakukan aksinya. Sebagai ilustrasi, anda memiliki kode sebagai berikut:

Session_start();

$_SESSION[’user’]=’admin’;

Kode diatas merepresentasikan simulasi login oleh admin, di mana ketika login sesuai, kode

akan menset session . Selanjutnya, dengan menggunakan komputer lain, atau paling tidak

browser lain, penyerang mengakses alamat yang sama dengan menambahkan id PHPSESSID.

Contohnya seperti berikut:

http://path_URL/TestFixation.php?PHPSESSID=1234

Page 10: 09071003050Macam-macamauthentikasi

Aksi penyerang akan mengakibatkan dibuatnya session dengan nilai sama dan id sesuai yang

dikirimnya, setelah itu, penyerang bisa menggunakan id yang telah dikirimkan melalui

parameter URL.

Solusi untuk mencegah session fixation adalah dengan memanfaatkan fungsi

session_regenerate_id(). Fungsi ini akan men-generate current id dengan nilai yang baru.

Implementasinya, re-generate id session baru setiap login berhasil dilakukan, contohnya seperti

berikut:

Session_start();

$_SESSION[’user’]=’admin’;

Echo ‘<p>id:’,session_id();

If(!empty($_SESSION))

{session_regenerate_id(true);

}

Kode diatas akan selalu men-generate id session baru jika session bukan merupakan session

baru. Secara default, session_regenerate_id() tidak akan menghapus session yang lama. Anda

bisa menambahkan parameter opsional berupa boolean true untuk menghapus session lama

secara otomatis. Parameter ini hanya bisa digunakan di PHP 5.1.0 ke atas.

5. Mencegah session Hijacking

Jenis serangan lain yang berbasis pada informasi session adalah session hijacking. Berbeda

dengan session fixation, di sini penyerang melakukan aksinya setelah user login ke komputer

server. Sebenarnya serangan ini juga ada kaitannya dengan session fixation.

Pendekatan yang baik untuk mencegah session hijacking adalah dengan menyebarkan token.

Langkah ini harus didukung dengan penggunaan algoritma hashing atau enskripsi. Contohnya

seperti berikut:

Page 11: 09071003050Macam-macamauthentikasi

session_start()

$token=md5($_SERVER[’HTTP_ACCEPT_ENCODING’]

. $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]

. $_SERVER[‘HTTP_USER_AGENT’]);

If(isset($_SESSION[‘HTTP_USER_AGENT’]))

{

If($_SESSION[‘HTTP_USER_AGENT’]!=$token)

{ exit(‘invalid…’);

}

else

{$_SESSION[‘HTTP_USER_AGENT’]=$token;

}

}

Print_r($_SESSION);

Perlu diketahui, keamanan data session tidak hanya dipengaruhi oleh teknik hashing ataupun

enskripsi. Ada factor lain yang perlu anda perhatikan, yaitu lokasi penyimpanan session. Dimana

normalnya terletak di direktori penyimpanan (tmp). Pastikan bahwa direktori ini tidak bisa

diakses oleh orang lain. Akan lebih baik lagi jika session ditempatkan di memori, dengan

mengatur konfigurasi directive session.save _path, dan memberinya nilai mm.

Page 12: 09071003050Macam-macamauthentikasi

6.Penggunaan Session Pada login menggunakan AdoDB

Dengan menggunakan fungsi-fungsi session, kita bisa membagun suatu mekanisme login.

Skenarionya begini: Pengunjung mekakses halaman utama index.php, dimana terdapat form

isian login form isian user dan form isian password untuk login. Ia harus memasukkan

username dan password yang valid agar dapat mengakses informasi utama di suatu situs ,

kemudian setelah berhasil akan disediakan link untuk logout dan diharapkan telah

menyediakan plugin inodb pada directory active pada web yang akan dibuat.

Untuk itu maka diperlukan suatu database untuk menampung data user yang terdaftar dalam

contoh ini menggunakan mysql

Sintaks sql untuk table user yang akan digunakan dalam aplikasi login session:

CREATE TABLE IF NOT EXISTS `users` (

`No` bigint(100) NOT NULL auto_increment,

`username` varchar(100) NOT NULL,

`nama_lengkap` varchar(100) NOT NULL,

`password` varchar(100) NOT NULL,

`level` varchar(100) NOT NULL,

`id_session` varchar(100) NOT NULL,

PRIMARY KEY (`No`)

)

Kemudian isilah table tersebut dengan user yang anda inginkan untuk pengetestan login nanti

Kita akan membuat file konektor AdoDb untuk koneksi menggunakan ado DB seperti contoh

berikut

File :connector.php

<?

require_once("adodb/adodb.inc.php");

$db = ADONewConnection('mysql');

$db->Connect('localhost','root','','TA');

?>

Page 13: 09071003050Macam-macamauthentikasi

Kemudian kita akan membuat script untuk form login sebagai interface login:

File:index.php

<html>

<head>

<title></title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body OnLoad="document.login.username.focus();">

<div id="header">

<div id="content">

<h2>Login</h2>

<img src="images/login-welcome.gif" width="97" height="105" hspace="10" align="left">

<form name="login" action="cek_login.php" method="POST" onSubmit="return validasi(this)">

<table>

<tr><td>Username</td><td> : <input type="text" name="username"></td></tr>

<tr><td>Password</td><td> : <input type="password" name="password"></td></tr>

<tr><td colspan="2"><input type="submit" value="Login"></td></tr>

</table>

</form>

<p>&nbsp;</p>

</div>

<div id="footer">

Copyright &copy; <?echo date("Y");?>. All rights reserved.

</div>

</div>

</body>

</html>

Page 14: 09071003050Macam-macamauthentikasi

File :cek_login.php

Kemudian akan membuat file cek_login.php yang digunakan untuk mencheck login user disertai

validasi input login:

<?php

include("connector.php");

function anti_injection($data){

$filter =

mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));

return $filter;

}

// pastikan username dan password adalah berupa huruf atau angka.

if (!ctype_alnum($username) OR !ctype_alnum($pass)){

echo "Sekarang loginnya tidak bisa di injeksi lho.";

}

else{

$login=$db->Execute("SELECT * FROM users WHERE username='$username' AND

password='$pass'");

$ketemu2=$db->Execute("SELECT COUNT(*) FROM users WHERE username='$username' AND

password='$pass'");

$ketemu3=$ketemu2->GetArray();

$ketemu=$ketemu3[0][0];

$r=$login->GetArray();

// Apabila username dan password ditemukan

if ($ketemu > 0){

session_start();

Page 15: 09071003050Macam-macamauthentikasi

$_SESSION[namauser] = $r[0][username];

$_SESSION[namalengkap] = $r[0][nama_lengkap];

$_SESSION[passuser] = $r[0][password];

$_SESSION[leveluser] = $r[0][level];

$sid = session_id();

mysql_query("UPDATE users SET id_session='$sid' WHERE username='$username'");

header('location:media.php?module=home');

}

else{

echo "<link href=../config/adminstyle.css rel=stylesheet type=text/css>";

echo "<center>LOGIN GAGAL! <br>

Username atau Password Anda tidak benar.<br>

Atau account Anda sedang diblokir<br>";

echo "<a href=index.php><b>ULANGI LAGI</b></a></center>";

}

}

?>

Page 16: 09071003050Macam-macamauthentikasi

Kemudian Menampilkan halaman bila berhasil login

File :media.php

<?php

session_start();

if (empty($_SESSION[username]) AND empty($_SESSION[passuser])){

echo "<link href='style.css' rel='stylesheet' type='text/css'>

<center>Untuk mengakses modul, Anda harus login <br>";

echo "<a href=index.php><b>LOGIN</b></a></center>";

}

else{

?>

<html>

<head>

<title></title>

<script type="text/javascript" src="../nicEdit.js"></script>

<script type="text/javascript">

bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });

</script>

</script>

<link href="style.css" rel="stylesheet" type="text/css" />

<link href="style3.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="header">

<div id="menu">

<ul>

<li><a href=?module=home>&#187; Home</a></li>

Page 17: 09071003050Macam-macamauthentikasi

<?php include "menu.php"; ?>

<li><a href=logout.php>&#187; Logout</a></li>

</ul>

<p>&nbsp;</p>

</div>

<div id="content">

<?php include "content.php"; ?>

</div>

<div id="footer">

Copyright &copy; <?echo date("Y");?>. All rights reserved.

</div>

</div>

</body>

</html>

<?php

}

?>

Page 18: 09071003050Macam-macamauthentikasi

Kemudian file untuk logout pada halaman:

<?php

session_start();

session_destroy();

// Apabila setelah logout langsung menuju halaman utama website, aktifkan baris di bawah ini:

// header('location:http://www.alamatwebsite.com');

?>

<html>

<head>

<title></title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<div id="header">

<div id="content">

<h2>SUCCESS LOGOUT FROM SYSTEM <b>[LOGOUT]<b></h2>

<center>

<br>

<a href='index.php'> << BACK TO LOGIN FORM</a>

</center>

<p>&nbsp;</p>

</div>

<div id="footer">

Copyright &copy; <?echo date("Y");?>. All rights reserved.

</div>

Page 19: 09071003050Macam-macamauthentikasi

</div>

</body>

</html>

Beberapa contoh gambar login menggunakan session

Page 20: 09071003050Macam-macamauthentikasi

Sukse login

Sukses logout

Page 21: 09071003050Macam-macamauthentikasi
Page 22: 09071003050Macam-macamauthentikasi

BAB II

COOKIES PADA PHP

7.COOKIES

Cookies dapat digunakan di dalam script PHP untuk menyimpan bit-bit kecil informasi tentang

user. Suatu cookies adalah sejumlah kecil data yang disimpan oleh browser user bersamaan

dengan suatu permintaan sari suatu server atau script. Cookies pada browser client akan

dikirim pertama kali ke server dan kemudian disimpan pada browser web.

Cookies memiliki kemampuan untuk menyimpan dan memanggil kembali data yang ada pada

hardisk client. Hanya saja cookies ini bersifat sementara sehingga keyika browser ditutup, atau

waktu penyimpanan cookies sudah habis, cookies juga akan dihapus. Dengan demikian,, ketika

browser dibuka kembali atau melewati jangka waktu tertentu, nilai cookies akan kosong karena

suatu cookies terdiri dari nama, nilai dan tanggal nilai expires cookie.

8.Menguji Cookies

Sebelum melakukan pembuatan cookies, lebih baik anda melakukan pengujian terlebih dahulu

pada browser yang anda pakai, apakah briwser anda mendukung cookies atau tidak. Perlu anda

ketahui bahwa terkadang fungsi untuk menerima cookies pada beberapa server sering

dimatikan dengan alasan keamanan, walupun tidak ada masalah pada kenyataannya, karena

cookies memeiliki batasan. Suatu serever hanya dapat menyimpan 20 cookies pada browser

pemakai, masing-masing cookies berukuran terbatas sampai sebesar 4 KB.

Page 23: 09071003050Macam-macamauthentikasi

File:testcookies.php

<?

$status=0;

If(isset($cookieku)&&($cookieku==”testcookie”))

{$status=1;

}

If(!isset($CK))

{

Setcookie(”cookieku”,”testcookie”);

header(”Location:$PHP_SELF?CK=1”);

exit;

}

?>

<html>

<head>

<title>Menguji cookie</title>

</head>

<body>

Status cookie:

<?

If($status==1)

{echo ”mendukung cookie”;

}

Else

{ echo ”tidak mendukung cookie”;

}

?>

</body>

</html>

Page 24: 09071003050Macam-macamauthentikasi

9.Membuat cookies

Untuk membuat cookie digunakan fungsi setcookie() dengan sintaks sebagai berikut:

Setcookie(String_name,String_value,int_expire,string_path,string _domain,int_secure)

Semua argumen, kecuali string_name , bersifat opsional

Keterangan:

String_name adalah nama variabel yang digunakan untuk menyimpan nilai cookie yang

dapat diakses nantinya dengan $_COOKIE atau array $HTTP_COOKIE_VARS.

String_value merupakan nilai yang dilewatkan ke variabel string_name.

Int_expire adalah batas waktu expire cookie yang ditentukan

String_path adalah path direktori web server yang berlaku untuk cookie

String_domain merupakan domain server yang mendefinisikan cookie

Int_secure nilai parameter keamanan transmisi melalui HTTPS

<?

Setcookie(”nama”,”kasiman”,time()+60,”/”,”127.0.0.1”,0);

?>

<html>

<head>

<title>membuat cookie</title>

</head>

<body>

<h1>cookie</h1>

</body>

</html>

Pada script diatas cookie diset hanya berlaku 1 menit dalam nilai set cookie expire time()+60

yang artinya cookie hanya berlaku selama 60 detik atau 1 menit, dan fungsi cookie ini harus

dideklarasikan sebelum output program dikirim ke browser client yang artinya harus ditulis

sebelum penulisan tag html

Page 25: 09071003050Macam-macamauthentikasi

10. Memanggil Cookies

Untuk memanggil cookie, cukup ketikan nama cookie

Perhatikan contoh pemanggilan cookie berikut:

<?

$namac=$HTTP_COOKIE_VARS[”nama”];

$nama2=$_COOKIE[”nama2”];

Print(”nama :$namac<br>”);

Print(”nama :$nama2<br>”);

Print(”nama :$nama<br>”);

?>

11.Menghapus Cookies

Untuk menghapus cookie, panggil fungsi set cookie dengan hanya menyebutkan nama cookie

sebagai argumennya atau hanya denga menyebutkan nama cookie sebagai argumen pertama

dan string kosong pada argumen nilai.

File :setcookie

<?

Setcookie(”nama”,”kasiman”);

Print(”cookie telah terbentuk”);

?>

<html>

<body>

Cookie

</body>

</html>

Page 26: 09071003050Macam-macamauthentikasi

File :Hapus cookie

<?php

$namac=$HTTP_COOKIE_VARS[”nama”];

//hapus cookie

Setcookie(”nama”);

Print(”nama sebelum dihapus: $namac”);

Print(”nama sesudah dihapus:$_COOKIE[’nama’]”);

?>

12. Mengatasi Kegagalan mengirim cookie

Apakah anda pernah mengalami kegagalan saat mengirim cookie? Misalnya , Mendapat respon

berupa pesan ”header already sent” dari parser PHP. Ini berarti bahwa cookie yang nada

tetapkan tidak bisa dikirim dan diset.

Kegagalan seperti itu disebabkan karena kita terlebih dahulu mengirim output lain ke browser

sebelum memanggil fungsi setcookie(). Contohnya seperti berikut ini :

<?

Echo ’hii..’;

Setcookie(’mycookie’,’test’);

?>

Kode diatas berpotensi besar mengakibatkan cookie gagal dikirim. Spserti diketahui, pesan

HTTP memiliki header dan body yang nantinya dikirim ke browser client. Begitu anda sudah

mengirim body, anda tidak diperkenankan lagi untuk mengirim header lainnya. Adapun

penulisan yang disarankan adalah sebagai berikut:

Page 27: 09071003050Macam-macamauthentikasi

Setcookie (’mycookie’,’test’);

Echo ”test”;

Atau

<?

Setcookie(’mycookie’,’test’);

?>

<html>

<body>

</body>

</html>

Kegagalan semacam ini juga berlaku ketika anda mengirim header HTTP. Misalnya, browser

sudah mencetak output body sebelum header berhasil dikirim

13.Hashing Cookie

Umumnya, kita menggunakan cookie untuk menyimpan nama yang kemudian diikuti password.

Bagaimanapun juga, menyimpan informasi sebagai teks sederhana akan lebih membuka

peluang terhadap penyerangan . Cara seperti ini harus dihindari, dan sebaiknya anda

menggunakan algoritma hash untuk menyimpan cookie.

Salah satu algoritma hashing yang cukup populer dan sering digunakan adalah message-digest

(MD). Algoritma ini diimplementasikan dalam fungsi md5().Contoh penggunaannya sebagai

berikut:

If(!empty($_POST[’nama’])&&!empty($_POST[’pass’]))

{$time=$time();

$nama=$_POST[’nama’];

$pass=md5($_POST[’pass’]);

If(isset($_POST[’remember’]))

{$remember=$_POST[’remember’];

}

}

Page 28: 09071003050Macam-macamauthentikasi

$sql=’SELECT nama,password FROM login WHERE nama=”’.$nama.’” AND password =”’.

$pass.’”’;

$res=mysql_query($db,$sql) or die(’sql error’);

If(($res!=null) && (mysql_num_rows($res)==1))

{$data=$nama.’-’.$pass;

If(isset($_POST[’remember’]) && ($_POST[’remember’]==’yes’))

{if(setcookie(’info’,$data,$time+3600)==true)

{$lifetime=$time+3600;

Echo ’cookie Lifetime: ’,$lifetime;

}

}

}

?>

<p><a href=”./logout.php”>logout</a>

<?

ELSE

{exit(’acesss denied’);

}

Mysql_free_result($res);

Mysql_close($db);

?>

Page 29: 09071003050Macam-macamauthentikasi

14. Authetikasi PHP pada Port FTP

Untuk dapat melalukan login pada port 21 yaitu FTP untuk pengaksesan file dapat

menggunakan fungsi dalam php yaitu dengan sintaks:

ftp_login(ftp_connection,username,password)

keterangan atribut:

ftp_connection unutuk mejelaskan server yang kan diakses contoh 127.0.0.1

username yaitu username yang digunakan untuk login pada ftp

password. Ialah password yang digunakan untuk authetikasi username yang mengakses ftp port 21

contoh sintaks pada php

<?php

$conn = ftp_connect("ftp.testftp.com") or die("Could not connect");

ftp_login($conn,"admin","ert456");

ftp_close($conn);

?>

15.Authetikasi menggunakan Variable digest global PHP

Authentikasi digest dengan variabel global hanya berlaku pada PHP apache modul

Berikut contoh dasar penggunaaan:

Example #6 Basic HTTP Authentication example

<?phpif (!isset($_SERVER['PHP_AUTH_USER'])) {    header('WWW-Authenticate: Basic realm="My Realm"');    header('HTTP/1.0 401 Unauthorized');    echo 'Text to send if user hits Cancel button';    exit;} else {    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";}?>

Page 30: 09071003050Macam-macamauthentikasi

Example #7 Digest HTTP Authentication example

<?php$realm = 'Restricted area';

//user => password$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {    header('HTTP/1.1 401 Unauthorized');    header('WWW-Authenticate: Digest realm="'.$realm.           '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

    die('Text to send if user hits Cancel button');}

// analyze the PHP_AUTH_DIGEST variableif (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||    !isset($users[$data['username']]))    die('Wrong Credentials!');

// generate the valid response$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)    die('Wrong Credentials!');

// ok, valid username & passwordecho 'Your are logged in as: ' . $data['username'];

// function to parse the http auth headerfunction http_digest_parse($txt){    // protect against missing data    $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);    $data = array();    $keys = implode('|', array_keys($needed_parts));

    preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);

Page 31: 09071003050Macam-macamauthentikasi

    foreach ($matches as $m) {        $data[$m[1]] = $m[3] ? $m[3] : $m[4];        unset($needed_parts[$m[1]]);    }

    return $needed_parts ? false : $data;}?>

Page 32: 09071003050Macam-macamauthentikasi

DAFTAR PUSTAKAKadir Abdul, 2007. Konsep Sistem Informasi , Bandung. Penerbit Andy

Peranginangin kasiman 2005, Aplikasi web dengan PHP,

Bandung .Penerbit andy

Dwi Prasetyo Didik, 2006. 101 Tips and trik pemprograman PHP,

Jakarta. Penerbit Elex Media komputindo

http://www.php.net/

http://www.w3schools.com