Foros del Web » Programando para Internet » PHP »

Testeando la entrada al sitio

Estas en el tema de Testeando la entrada al sitio en el foro de PHP en Foros del Web. Hola quetal saludos a todos los foreros que ayudan a crecer cada vez mas esta comunidad. Lo que quiero es que me aconsejen para mejorar ...
  #1 (permalink)  
Antiguo 27/01/2009, 11:34
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Pregunta Testeando la entrada al sitio

Hola quetal saludos a todos los foreros que ayudan a crecer cada vez mas esta comunidad.

Lo que quiero es que me aconsejen para mejorar el codigo de ingreso ami sitio web como la encriptacion de contraseñas entre otros aspectos de seguridad importantes que deberia mejorar para que fuera mas seguro aqui va el codigo

Código PHP:
<?php
session_start
();
require(
"DB.php");

    
//Si el resultado de la funcion es false esta incomplo el form
    
if(!validar($_POST))
    {
    
    
header("location:index.php?mensaje=Error:Los datos se encuentran incompletos");
    }
    
    else
    {
            
        
        
//estraigo las variables $_POST es un array asociativo
        
extract($_POST); 
        
//encripto con sha1 $login y $password ->unidireccionalmente
        
        
$clave=sha1($clave); 
        
//verifico si los datos de login y  password estan registrados 
        
$verification=mysql_query("
        select login,clave from usuarios where login='$login' and clave='$clave'"
);
        
            
//si hubo coincidencias
            
if(mysql_num_rows($verification)>0)
            {
                
//si usuario y login coinciden 
                
require('funciones.php');
                
funciones_inactividad_tiempo($login);
                
//registro variables de session
                //registro la hora de entrada (se puede usar para desloguear por inatividad)
                
$hora_entrada=date("H:i:s");
                
session_register("login","hora_entrada");
                
/*******VERIFICO PERMISO DE USUARIOS************/
                //        1->usuarios normal
                //        12->moderador
                //        12345->administrador
            
                //compruebo los permiso del usuarios legeado
                
$permisos=mysql_query("
                select permisos from usuarios where login='$login' and clave='$clave'"
);
                if(
mysql_num_rows($permisos)>0)
                {
                    while(
$row=mysql_fetch_array($permisos))
                    {
                        
$permiso=$row['permisos'];
                        
                            
                    }
                    
//despues de obtener los permisos hago lo redirecciono
                    
if($permiso==1
                    {
                        
header("location:panel.php?seccion=usuarios");
                        
$seccion=usuarios;
                        
session_register("seccion");
                        
session_register("login"); 
                        
//registro una variable de session llamada seccion por si el usuarios quiere                              escojer
                        //otro tipo de permiso, despues comparo las dos seccion en module_users.php
                    
}
                    elseif(
$permiso==12)
                    {
                        
header("location:panel.php?seccion=moderadores");
                        
$seccion=moderadores;
                        
session_register("seccion");
                        
session_register("login");
                    }
                    elseif(
$permiso==12345)
                    {
                        
header("location:panel.php?seccion=admin");
                        
$seccion=admin;
                        
session_register("seccion");
                        
session_register("login");
                    }
                        
                        
                        
                        
                    
                }
                
                
//si no se encuentrn permisos dar opcion de contacto con el administrador para corregir            
                
else
                {
                    echo 
"No se encontraron permisos";
                    
                }
                
                
                
/*******************/
                
                
                
            
}
            
//si no hubo conincidencias
            
else
            {
                
//mando de nuevo el formulario 
                
header("location:index.php?mensaje=Error:El usuario no se encuentra en la Base de datos");
            }
        
        
    }
        






//me permite validar grande cantidades de formulario en un simple ciclo foreach
function validar($array)
{
    

foreach (
$array as $key=>$value)
{
        
      if(!isset(
$key) || empty($value))
        {
         return 
false;
        }
}  
           return 
true;
    

    


}
?>
  #2 (permalink)  
Antiguo 27/01/2009, 12:22
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Testeando la entrada al sitio

Cita:
header("location:index.php?mensaje=Error:Los datos se encuentran incompletos");
Pasa la cadena: "Error: Los datos ..." por la funcion urlencode() antes de pasarla asi.

Cita:
Directo del manual de php.net
// El uso de session_register() es considerado obsoleto
http://www.php.net/manual/es/functio...n-register.php

Y por ultimo (creo), envias las variables tal cual la recibes del usuario, lo ideal es hacer alguna validacion(no solo validar que no estan vacios) antes de hacer cualquier consulta:
http://www.php.net/manual/es/functio...ape-string.php
  #3 (permalink)  
Antiguo 27/01/2009, 13:05
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Testeando la entrada al sitio

oooo si muchas gracias y no se porque esta vez se me paso validar los datos de los formularios lo otro lo tendre muy muy encuenta alguien aportaria mas a mejorar este codigo?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:50.