Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2010, 19:59
7xtr3am
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
que tan seguro es mi login?

bueno pues resulta que estas ultimas semanas eh tenido problemas con unos hackers. me han hecho algunos desastres en al pagina. bueno contra InyeccionSQL creo ya estar protegido, pero me encuentro con este tipo de hacking "Session Hijacking".

alguien sabe si el "Session Hijacking" solo afecta cuando se utilizan cookies? por que yo en todo mi sitio no uso cookies.

la forma que uso para el login es asi. que opinan ustedes? es suficiente con eso? o requiere mas seguridad?

por que segun he investigado (una de ellas http://phpsec.org/projects/guide/4.html) se puede hackear la sesion, pero no se si ese tipo de hacks afecta mi login teniendo en cuenta que no uso cookies.

bueno, espero me puedan ayudar. gracias

Código PHP:
    session_start();
    
    
//---------------------------------- logout
    
if ($_POST["salir"])
    {
        if (
$_POST["salir"]=="si")
        {
            
session_unset();
            
session_destroy();
            
header("Location: index.php");
            exit(
0);
        }
    }
    
    
//---------------------------------- ya esta logeado ,regrearlo al prinicpal 
    
if (isset($_SESSION["USUARIO"]) &&  session_id()== $_SESSION["SESION_ID"])
    { 
        
session_unset();
        
session_destroy();
        
header("location: index.php");
    }

    
//---------------------------------- faltan campos
    
if ( !isset($_POST['texto_usuario']) || !isset($_POST['texto_pass']) )
    {
        
session_unset();
        
session_destroy();
        
header("Location: index.php?error=true");
        exit(
0);
    }

    if ( 
$_POST['texto_usuario']=="" || $_POST['texto_pass']=="" )
    {
        
session_unset();
        
session_destroy();
        
header("Location: index.php?error=true");
        exit(
0);
    }

    
//---------------------------------- autenticacion
    
$texto_usuario $_POST['texto_usuario'];
    
$texto_usuario strtoupper($texto_usuario);
    
$texto_pass $_POST['texto_pass'];

        if( 
autenticar($texto_usuario,$texto_pass) )
        {
            
$perfil 2;
            
$id get_id($texto_usuario,$texto_pass);
        }
        else
        {
            
            
session_unset();
            
session_destroy();
            
header("Location: index.php?error=true");
            exit(
0);
        }

    
//---------------------------------- loing
    
session_destroy();
    
session_start();
    
$_SESSION["USUARIO_ID"]            = $id;
    
$_SESSION["USUARIO_NOMBRE"]     = $texto_usuario;
    
//$_SESSION["USUARIO_PASSWORD"]    = $texto_pass;
    
$_SESSION["SESION_ID"]          = session_id();
    
$_SESSION["PERFIL"]              = $perfil;

    
//---------------------------------- redireccionar
    /*if($_SESSION["PERFIL"] == 1)
        header("Location: admin.php");
    else*/
        
header("Location: admin2.php"); 
Código PHP:
        public function autenticar($usuario,$password)
        {
            
$link conectarse();
            
$q "SELECT id_administrador FROM administradores WHERE usuario='".comillas_inteligentes($usuario)."' and password='".comillas_inteligentes($password)."'";
            
$result mysql_query($q,$link) or die("ocurrio un error");

            
$es_correcto false;
            while(
$row mysql_fetch_array($result))
            {
                
$es_correcto true;
                
$id_administrador $row["id_administrador"];
            }
            
            
mysql_close($link);
            return 
$es_correcto;
        }
        
        function 
comillas_inteligentes($valor)
        {
            
// Retirar las barras
            
if (get_magic_quotes_gpc()) {
                
$valor stripslashes($valor);
            }
        
            
$valor mysql_real_escape_string($valor);
            return 
$valor;
        }