Laboratorio: controlar el tiempo de sesión con PHP

Una de las cuestiones que hay que tener en cuenta por temas de seguridad es controlar el tiempo en el que está activa la sesión. Por ejemplo, para evitar que una persona olvide “desconectarse” y otro aproveche su usuario cuando no esté.

Las sesiones en PHP se controlan con la variable $_SESION, que es un array que contiene las variables de sesión. En nuestro caso, comprobaremos si existe una variabla de sesión que contenga el ID de sesión, si la hay, se recupera el tiempo en el que empezó la sesión (un timestamp) y se comprueba si ha pasado el tiempo máximo de sesión activa (en nuestro ejemplo 1 minuto), si ha sobrepasado el tiempo, se borran los datos de la sesión.

Una vez comprobada si la sesión debe seguir activa, se comprueba si sigue existiendo la sesión (vamos, que si no hemos acabado con ella), miramos si se ha pedido crear la sesión, por ejemplo cuando nos hemos logueado, en este caso, nos creamos las dos variables de sesión: el id y el timestamp.

<?php
// Inciamos la sesión
session_start();
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"xhtml1-transitional.dtd">
<html>
<head>
<title>Sentido Web - Sessiones</title>
</head>
<body>
<p>
<?php
// Primero miramos si la sesión es válida
// Cuando el tiempo que lleva activa sea menor que 1 minuto
if (isset($_SESSION["ID_SESSION"])) {
$antes = $_SESSION["SESION_TIME"];
// Si lleva más de 1 minuto (60 segundos)
if (time()-$antes > 60) {
// Libramos la sesion
session_unset();
session_destroy();
echo 'Finalizó la sesión. <br/>';
}
}
// Si ya hay sesión lo indicamos
if (isset($_SESSION["ID_SESSION"])) {
?>
Hay SESIÓN (<?php echo $_SESSION["ID_SESSION"]; ?>)
<?php
// Si no hay sesión
} else {
// Si se ha pedido la creación de una sesion
if (isset($_GET["accion"])) {
// se quiere crear una sesion
// Se crea la variable de sesion id de sesion
// y tiempo en el que empieza la sesion
if ($_GET["accion"] == "1") {
$_SESSION["ID_SESSION"] = "ID".rand();
$_SESSION["SESION_TIME"] = time();
?>
Has creado la sesión <?php echo $_SESSION["ID_SESSION"]. " " .$_SESSION["SESION_TIME"]; ?>
<?php
// No se quiere crear la sesión
} else {
?>
No has querido crear sesión.
<?php
}
// No hay sesión, se avisa y
// se pregunta si se quiere crear una
} else {
?>
No hay SESIÓN. ¿Quiere crear una?
<input type="button" value="SI" onclick="document.location='sesion.php?accion=1'" />
&nbsp;
<input type="button" value="NO" onclick="document.location='sesion.php?accion=0'" />
<?php
}
}
?>
</p>
</body>
</html>
| |

La respuesta de Microsoft a Google Analytics

MicrosoftMicrosoft parece que quiere competir con Google Analytics haciendo una gran inversión en la empresa de estadísticas web DeepMetrix. Microsoft incluirá este servicio en la mayoría los sitios que dispone (Microsoft AdCenter, Internet Search, Office Live y MSN Spaces). Aunque en ningún momento hablan de Google, da la impresión de que su finalidad es luchar contra Google Analytics, claro, que lo bueno de Google Analytics es poder incluirlo en tu propio sitio, sin depender quién es el proveedor, claro, eso si tienes o puedes acceder a una cuenta.
DeepMetrix
Vía / Download Squad

| |

AJAX paso a paso: Información de imágenes

AJAX tiene muchas utilidades, y aunque a veces se abusa de ello, siempre nos puede dar agilidad a la hora de cargar la página, vamos a mostrar un caso de cómo cargar datos nuevos en la página una vez se haya finalizado la carga de la página en sí. Para ello, un ejemplo que nos viene perfecto es una galería de imágenes y cargar los datos de cada imágen de forma asíncrona, que puede ser costoso si se carga la página con los datos de las imágenes y que el usuario tenga que esperar a esta información, cuando es posible que no le interese. A parte, explicaremos otro tipo de método de recibir datos, esta vez mediante el método POST y un XML.
ajax-imagenes.png

Read More “AJAX paso a paso: Información de imágenes”

links for 2006-05-09

|

Dominios .es a 1 euro para empresas y autónomos

logo_red.gif Para conmemorar el día de Internet (17 de mayo) hasta el 30 de junio, Red.es (empresa del Ministerio de Industria, Turismo y Comercio) permitirá que cualquier empresa o autónomo pueda registrar por 1 euro un máximo de 3 dominios .es del tipo: www.nombredetuempresa.es

Con el fin de asegurar que esta promoción es utilizada en exclusiva por las empresas españolas y profesionales autónomos, los interesados deberán remitir a Red.es, según el procedimiento establecido en la página web www.red.es/dominios1euro y en el plazo de 1 MES desde el registro efectivo la documentación acreditativa de la actividad empresarial.

Quedan excluidos los dominios con caracteres multilingües (ñ, ó…). Tampoco se podrán registrar al estar reservados:

  • Denominaciones de órganos constitucionales y otras instituciones del Estado.
  • Topónimos correspondientes a las administraciones públicas territoriales.
  • Terminología básica de Internet.

Red.es

Vía / El Navegante

Skype prepara sus móviles con wi-fi

SkypeSkype prepara el lanzamiento de sus teléfonos móviles con wi-fi, que permitirán a los usuarios a usar sus servicios sin la necesidad de conectarse a Internet mediante un PC, siempre que se encuentre en una zona con acceso a Internet mediante wifi.
A parte, aprovechando los nuevos teléfonos 3G, quiere extender su negocio y llegar a acuerdos sin exclusividad con las operadoras de telefonía móvil para que se pueda utilizar los servicios de la telefonía por Internet. Aunque, personalmente, no veo esto muy sencillo, porque a mí me sale más barato llamar a EE.UU. con SkypeOut que llamar a una persona en España con distinta operadora que la mía.
Skype ultima el lanzamiento de sus primeros móviles con wi-fi
Vía / Fresqui