Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/10/2008, 05:28
Avatar de Celcius
Celcius
 
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 22 años
Puntos: 5
Respuesta: Echen un ojo a este autentificador.

Jejeje excelente!!! Tus consejos observaciones me sirven de mucho, voy a averiguar todo eso para poder implementarlo... Bueno aqui está el código:

puerta.php
Código PHP:
<?php
session_start
();
error_reporting(E_ALL);
$_SESSION["inicio"]="desde_la_puerta";
?>

<FORM action="comprueba.php" method="POST">
<table border="0" cellspacing="0" cellpadding="0" width="300" align="center">
<TR>
    <TD>Usuario</TD>
    <TD>: <input type="text" name="usuario"></TD>
</TR>
<TR>
    <TD>Contrase&ntilde;a</TD>
    <TD>: <input type="password" name="contrasena"></TD>
</TR>
<TR>
    <TD colspan="2"><input type="submit" value="Enviar"></TD>
</TR>
</table>
</FORM>
comprueba.php
Código PHP:
<?php
session_start
();
error_reporting(E_ALL);
if(
$_SESSION["inicio"]=="desde_la_puerta"){
    
$usuario $_POST["usuario"];
    
$contra $_POST["contrasena"];
    
mysql_connect("localhost","root","41234160");
    
mysql_select_db("prueba");
    
$consulta mysql_query("
    SELECT *
    FROM usuarios WHERE usuario='$usuario' and contra='$contra'
    "
)or die("Error");
    if(
mysql_num_rows($consulta)>0){
    
$datos mysql_fetch_assoc($consulta);
    
$_SESSION["usuario"]["nivel"]=$datos["nivel"];
    
$_SESSION["usuario"]["usuario"]=$datos["usuario"];
    
$_SESSION["usuario"]["contrasena"]=$datos["contra"];
    
$_SESSION["usuario"]["logeado"]="si";
    
header("location: repartir.php");
    exit;
    }else{
    
header("location: puerta.php?error=si");
    exit;
    }
}else{
    
header("location: puerta.php?error=si");
    exit;
}

?>
repartir.php
Código PHP:
<?php
session_start
();
error_reporting(E_ALL);
if(isset(
$_SESSION["usuario"]["logeado"]) && isset($_SESSION["inicio"]) && $_SESSION["inicio"]=="desde_la_puerta"){
    switch (
$_SESSION["usuario"]["nivel"]){
        case 
0:
            
header("location: intranet/admin.php");
            exit;
        case 
1:
            
header("location: intranet/profesor.php");
            exit;
    }
    
}else{
    
header("location: puerta.php?error=no_correcto");
    exit;
}

?>
admin.php (debe estar dentro de una subcarpeta llamada "intranet")
Código PHP:
<?php
session_start
();
error_reporting(E_ALL);
$nivel="0";
//por si no existen las variables de sesión.
if(!isset($_SESSION["inicio"]) || !isset($_SESSION["usuario"]["nivel"]) || !isset($_SESSION["usuario"]["logeado"])){
header("location: ../puerta.php?error=acceso_equivocado");
exit;
}
//por si se intenta acceder desde otro lugar que no sea la puerta de nuestro sistema.
if($_SESSION["inicio"]!="desde_la_puerta" || $_SESSION["usuario"]["nivel"]!=$nivel || $_SESSION["usuario"]["logeado"]!="si"){
header("location: ../puerta.php?error=error_de_acceso");
exit;
}
echo 
"Bienvenido a la seccion del admin";

?>
profesor.php (guardar igual que admin)
Código PHP:
<?php
session_start
();
error_reporting(E_ALL);
$nivel="1";
if(!isset(
$_SESSION["inicio"]) || !isset($_SESSION["usuario"]["nivel"]) || !isset($_SESSION["usuario"]["logeado"])){
header("location: ../puerta.php?error=acceso_equivocado");
exit;
}
if(
$_SESSION["inicio"]!="desde_la_puerta" || $_SESSION["usuario"]["nivel"]!=$nivel || $_SESSION["usuario"]["logeado"]!="si"){
header("location: ../puerta.php?error=logearse_de_nuevo");
exit;
}
echo 
"Bienvenido a la seccion del profesor";

?>
destruir.php (no hay ningún enlace hacia éste archivo, ingreso directamente desde la barra de direcciones para poder destruir las sesiones)
Código PHP:
<?php
error_reporting
(E_ALL);
session_start();
session_destroy();
header("location: puerta.php");
exit;
?>
Podrías decirme (en forma de ayuda) cómo harías tu para hacerlo mas seguro? osea, como protegerlo contra XSS, SQL Inyection? Bueno debo confesar que lo hice en casi una hora de trabajo, claro que no justifica las vulnerabilidades que no sé corregir (por ahora )

Cita:
Yo digo que demasiado simple
Estoy de acuerdo contigo, echen todo lo malo que vean, mientras mas hayan, mejor.. un abrazo y muchas gracias por sus sugerencias.
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus

Última edición por Celcius; 14/10/2008 a las 05:34