[Php-avanzado] Consulta de sesion

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Jul 31 02:46:09 ART 2008


Hola Lucas,

	Sí existe la posibilidad de inyectar una sesión (pero no es trivial.
	Para asegurar la cosa deberías hacer:

El mié, 30-07-2008 a las 23:24 -0300, Lucas Calviño escribió:
> Hola, estoy usando esta forma de mantener la sesion:
> 
> <?php
> session_start();
> 
> include ("../db/conexion.php");
> 
> if (isset ($_SESSION['user']) && isset ($_SESSION['pass']))
>  {

	// si están definidos, vuelvo a consultar en la DB
	// usuarioValido es una función que debés definir vos y que devuelve
verdadero si el usuario es válido
	if (! usuarioValido($_SESSION['user'],$_SESSION['pass'])
	{
		header ("Location: login.php");
	}

/*
	Fijate que esta función de hecho hace redundante la pregunta
if (isset ($_SESSION['user']) && isset ($_SESSION['pass'])) ya que si no
están seteadas, usuarioValido() devolverá falso y listo.
	Después, para no meter todo el script en un else, que queda "feo",
podés usar la estructura

if (!  usuarioValido($_SESSION['user'],$_SESSION['pass'])
{
	header ("Location: login.php");
	exit();
}

y seguir con el código. El header() salta a otra página, y el exit()
termina la ejecución del script.
*/
> ?>
> 
> <html>   
>     <body>
>         etc...
>     </body>
> </html>
> 
> <?php
> } else {
> header ("Location: login.php");
> }
> ?>
> 
> Quería saber si esta bien, ya que lo único que hago es preguntar si 
> existen las variables user y pass de $_SESSION, preguntonta, no es 
> posible, inyectando codigo, q se creen estas variables y se acceda sin 
> tener un login autentico.
> 
> Gracias. Lucas.

	Por nada!

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado