Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/12/2002, 22:54
Avatar de fmmeson
fmmeson
 
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 2 meses
Puntos: 2
Seguridad entre Todos

hola amigos quisiera compartirles un Scripts para autentificacion de usuarios.....es muy simple, no quiero competir con el trabajo de mi amigo "cluster" a quien admiro mucho.....mi intencion es crear desde 0 este proyecto donde todos pueden participar con sus ideas y conocimientos, al final de esto me gustaria lograr un buen scripts de seguridad, que es tan importante en las paginas, pero principalmente que TODOS entiendan CADA LINEA DE CODIGO........bueno basta de PREAMBULO y a la accion!!!!!

-------------------------------INDEX.PHP---------------------------------------

<html>
<head>
<title>Autentificación en PHP</title>
</head>
<body>
<h1>Autentificación PHP</h1>
<form action="control.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=#cccccc>Introduce tu clave de acceso
<?}?></td>
</tr>
<tr>
<td align="right">USUARIO:</td>
<td><input type="Text" name="usuario" size="8" maxlength="50"></td>
</tr>
<tr>
<td align="right">PASSWORD:</td>
<td><input type="password" name="contrasena" size="8" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>
</body>
</html>

--------------------------------CONTROL.PHP----------------------------------

<?
//vemos si el usuario y contraseña es váildo
if ($_POST["usuario"]=="downwarez" && $_POST["contrasena"]=="colaboracion"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: aplicacion.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
?>

------------------------------SEGURIDAD.PHP---------------------------------

<?
//TOMO VARIABLES DE SESION SOBRE LA AUTENTIFICACION
session_register("autentificado");
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($autentificado != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>

-----------------------------SALIR.PHP------------------------------------------

<?
session_start();
session_destroy();
?>
<html>
<head>
<title>Has salido!!</title>
</head>
<body>
Gracias por tu acceso
<br>
<br>
<a href="index.php">Formulario de autentificación</a>
</body>
</html>

------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
bueno empecemos con algo de TEORIA:

el primer archivo, me refiero al "index.php" contiene los editbox usuario y password, que se envian al la pagina "control.php" .
ademas "index.php" contiene la variable errorusuario, recibida por la URL y que informa si se produjo un error anterior al introducir usuario y contraseña, se está recogiendo por mediación del array asociativo $_GET, que guarda todas las variables enviadas por la URL.
El archivo "control.php" es el encargado de controlar si los datos de usuario y password son CORRECTOS, de ser esto afirmativo se crea una "session", o sea en otras palabras PHP le asigna al visitante un numero unico e irrepetible, que nos servira a nosotros posteriormente para verificar que el visitante realmente se logeado en la zona restringida por medio del formulario y no a entrado por otros medios que veremos luego, de nos ser asi el usuario sera redireccionado automaticamente al formulario de logueo.
En el archivo "seguridad.php" lo que hago es verificar si existe una session y tomarla......porque si se logueo correctamente tendria que haber recibido una session de usuario......de esta manera evitaremos.....a ciertos LAMERS!!! que tuvieran la idea de entrar a la zona restringida con tan solo colocar la direccion en el navegador sin pasar por el formulario de logueo. si esto pasara serian automaticamente direccionados al formulario!ejejej.
y para finalizar en el archivo "salir.php" lo que hacemos es DESTRUIR la session o sea el "comprobante" que nos dieron cuando colocamos el nombre de usuario y password correctos!!!!.
Esto es muy importante darle al visitante la posibilidad de DESLOGUERSE en cualquier momento, sin embargo las sesiones se finalizan solas cuando pasa un determinado tiempo sin recibir nuevas peticiones, pero no deseamos que antes de que se finalicen se pueda acceder con ese ordenador a nuestra aplicación restringida. Puede ocurrir que el usuario entre en la aplicación e inicie una sesión y que se marche de la aplicación segura sin cerrar la sesión, con lo que quedaría abierta para que cualquier otra persona pueda acceder a la aplicación volviendo por el historial de páginas del navegador.

------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
bueno espero comentarios ideas criticas o lo que sea!!!
Gracias por leer este POST, Feliz navidad y Año Nuevo para TODOS ustedes......y Recuerden que si DIOS hiciera paginas web, seguramente las haria en PHP!!!!!