Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2003, 11:40
kaslimon
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 86
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta ¿autentificar sesiones??

¡¡Hola a todos!!

Continuo en mi andada por el fascinante mundo del PHP, pero está visto que esto de las sesiones no me va a dejar en paz.

Ya lo he entendido casi todo (creo): uso arrays superglobales, se que se pasan pro cookies o por URL, etc...

Mi principal duda ahora es : he encontrado en php.net un script para autentificar sesion y usuario (bastante completo), sin embargo no entiendo bien su utilidad. Es decir, yo pensaba que de eso se encarga PHP.No entiendo como se podria hacer un uso malintencionado en este tema. Si me lo pudiérais explicar...

¿Creeís conveniente codificar (con md5, mcrypt,...) todos los datos de las session como por ejemplo $_SESSION["registrado"]="SI" a la hora de trabajar con ellos?¿que tipo de mal uso podría hacerse con estos datos si no los codifico ?¡¿Como se podrían hacer con ellos?!


Muchisimas gracias por adelantado!!!

Por si os interesa, aquí os envio el script que os he comentado antes:

Here is script I have been using to authenticate the session and the user

SCRIPT

//after successful database authentication with username AND password match

//get the unique time that this user has logged in at
$time_started = md5(mktime());

//encrypt the username and password
$secure_session_user = md5($_POST['username'].$_POST['password']);

//get the current users username
$_SESSION['session_user'] = $_POST['username'];

//this session_key will be used to authenticate on every page / getIPADDR() is a function which just return the ip address (I found here on php.net)
$_SESSION['session_key'] = $time_started.$secure_session_user.getIPADDR().ses sion_id();

$_SESSION['current_session'] = $_POST['username']."=".$_SESSION['session_key'];

//my own function which redirects the user
p_redirect("../account/profile_home.php");

//So now we have 3 SESSION vars which we will use for authentication
1. $_SESSION['current_session']
2. $_SESSION['session_key']
3. $_SESSION['session_user']

//On every page, we include a file called verify_session.php which has the following code
if ($_SESSION['current_session'] != $_SESSION['session_user']."=".$_SESSION['session_key'])
header("location:../login/index.php?auth_msg=".urlencode("Your session has expired, please login again"));
if ($logout == "logout")
{
$_SESSION['current_session'] = rand(100,9000000);
$_SESSION['curr_sess_iden'] = rand(100,9000000);
$_SESSION['session_user'] = "Oscar the Grouch";
$_SESSION['session_key'] = rand(100,9000000);
header("location:../login/index.php?auth_msg=".urlencode("You have been logged out"));
}

//and in our navigation, we have a logout link as simple as
<a href="<? $_SERVER['PHP_SELF'] ?>?logout=logout">Logout</a>

Hope it helps someone....