Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2010, 19:59
7xtr3am
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 17 años, 6 meses
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;
        }