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
