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;
}