Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: BigBear en 7 Octubre 2011, 01:21 am



Título: [PHP Class] Loginow 0.2 By Doddy H
Publicado por: BigBear en 7 Octubre 2011, 01:21 am
Hola a todos.

Acabo de hacer mi primer clase en PHP , esta sirve
para realizar logins a webs con las sig opciones


 * extrae valores del formulario para realizar la verificacion
 * login mediante DB
 * login mediante una contraseña md5 marcada por ustedes
 * Si el login es exitoso crea una cookie

No eh alcando a probarla hasta fondo
Pero  aca tienen un ejemplo de como usarla


test.php

Código:

include_once("loginow.php");

if (isset($_POST['mandar'])) {
$nave = new loginow;
$nave->campos("usuario","password");
//if ($nave->secure("admin","098f6bcd4621d373cade4e832627b4f6")) {
if ($nave->database("localhost","root","","hackman","hackers","usuario","password")) {
$nave->cookienow("login");
echo "login correcto";
} else {
echo "Error en el login";
exit(1);
}
} else {
echo "
<form action='' method=POST>
Usuario : <input type=text name=usuario value=admin><br>
Password : <input type=text name=password value=test><br>
<input type=submit name=mandar value=mandar></form>";
}

Como ven usamos las funciones

campos(); # ponemos los nombres de las casillas user y pass para realizar la verificacion
secure(); #establecemos esta funcion para verificar mediante user y pass establecidos por nosotros
database(); #ponemos los datos de la DB y sus columnas para realizar la verificacion , claro la clase solo se basara en el primer casillero


loginow.php

Código:
<?php

/*

Simple Class for login of the webs

(c) DOddy Hackman 2010


*/

class loginow {

private $host;
private $db;
private $user;
private $pass;
private $tabla;
private $columna1;
private $columna2;
private $usereal;
private $passreal;
private $campouser;
private $campopass;
private $cookiename;

public function campos($campouser,$campopass) {
if (isset($_POST[$campouser])) {
$this->campouser = $_POST[$campouser];
$this->campopass = md5($_POST[$campopass]);
} else {
$this->campouser = $campouser;
$this->campopass = $campopass;
}
}

public function database($host,$dbuser,$dbpass,$db,$tabla,$columna1,$columna2) {
mysql_connect($host,$dbuser,$dbpass);
mysql_select_db($db);
$que = mysql_query("SELECT * FROM ".$tabla);
while ($test = mysql_fetch_array($que)) {
if ($this->campouser == $test[$columna1] and $this->campopass == $test[password]) {
$this->usereal = $test[$columna1];
$this->passreal = $test[$columna2];
return true;
}
}
}

public function secure($user,$pass) {
if ($this->campouser == $user and $this->campopass == $pass) {
$this->usereal = $user;
$this->passreal = $pass;
return true;
} else {
return false;
}
}

public function cookienow($cookiename) {
setcookie($cookiename,base64_encode($this->usereal."@".$this->passreal));
}

}

?>

Caulquier mejora , fallo o vulnerabilidad encontrada deben decirmelo para mejorar