Login PHP dengan authentifikasi /etc/shadow

Seminggu sudah saya bekerja disebuah perusahaan ISP swasta. Cukup banyak tugas dan ilmu baru yang saya pelajari disini. Salah satunya mengenai authentifikasi login pada php dengan mencocokan /etc/shadow. Dimana /etc/shadow ini menyimpan informasi user dan password login pada linux.

To the point saja, berikut ada script yang untuk membuat halaman login yang langsung berkoneksi dengan /etc/passwd ..

==============================================================<?

session_start();

ob_start();

if(isset($_SESSION[’user’]))

  header("location:index.php");

?>

<html>

<head>

<title>LOGIN</title>

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

</head>

<body>

<div align="center" id="contentlogin" class="bodytext"><br><br><B>ADMIN PANEL-LOGIN<b><br><br>

<form action="" method="post" >

<table>

<tr>

<td class="bodytext"><b>Username<b></td>

<td>:</td>

<td><input type="text" name="txtUsername"></td>

</tr>

<tr>

<td class="bodytext"><b>Password<b></td>

<td>:</td>

<td><input type="password" name="txtPassword"></td>

</tr>

<tr>

<td><input type="submit" name="btnOK" value="Login"></td>

<td></td>

<td><input type="reset" name="btnCancel" value="Reset"></td>

</tr>

</table>

</form>

</div>

</body>

</html>

<?

if(isset($_POST[’btnOK’]))

{

$getfile = fopen ("/etc/shadow", "r");

while (!feof ($getfile)) {

 

$user = explode(":", fgets($getfile, 4096));

if ($user[0] == $_POST[’txtUsername’]) {

if (crypt($_POST[’txtPassword’], substr($user[1], 0, 12)) == $user[1]) {

$_SESSION[’user’]=$_POST[’txtUsername’];

header("location:index.php");

} else {

?><script language="javascript">alert("Password salah");</script> <?

}

break;

}

}

fclose($getfile);

}

?>

========================================================= 

Jangan lupa untuk memberikan akses kepada user webserver tsb untuk dapat mengakses /etc/shadow..

ex :

#chmod 666 /etc/shadow

OK.. Slamat mencoba 

dan mohon saran n kritik nya…

best degard

 

budi_tsubasa 

Posted: November 20, 2008 Comments (1)