Ver Mensaje Individual
  #5  
Antiguo 04-07-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Reputación: 18
semptrion Va por buen camino
Vamos por partes...

Premisa:
Cuando programamos para Internet, desconocemos cuál es el cliente que está interactuando con nuestro servidor.

Esta premisa nos permite ver un poco más allá del browser tradicional, en el que existen botones de adelnate y atrás, javascript o cookies.

De hecho, el protocolo lo único que requiere es texto plano. Y texto plano puede generar cualquier software.

Por tanto, no es correcto vivir pendiente del comportamiento de un cliente en particular. Si encuentras la maña para borrar el historial del IE, seguramente que esa maña no funcionará en el Mozilla; y si logras hacerlo también para el Mozilla, seguramente no funcionará en Konqueror y así, así.

Si un usuario no se encuentra autenticado en el sistema, no debería importar cuántas veces intente entrar a una página restringida, NO DEBERÍA PODER hacerlo.

En otras palabras, no se restringe sólamente la llamada, también se debe restringir el acceso

Cada uno de los programas restringidos debe tener una rutina de verificación de si el usuario está autenticado. En caso en que no esté, deben remitir el flujo del programa a la página de login.

El típico ejemplo:

Supongamos que este es el código de la página principal (donde sólo entran usuarios autenticados)
Código PHP:
<?php
include 'verificar_si_el_usuario_esta_autenticado.inc.php';

.
.
.

el resto del programa.

?>
el programa verificar_si_el_usuario_esta_autenticado.inc.php
Código PHP:
<?php

if( el usuario no est&#225; autenticado ) {
    /* debe autenticarse */
    
header'Location: login.php' );
    die();
}
?>
Como verás, se debe colocar el código de verificación de autenticación entre las primeras líneas de cada programa.

Una cosa más.

Siempre que sea enviado un formulario con método post, se debería "limpiar el buffer" del cliente para que no sea reenviado el formulario, como cuando se aprieta suficientes veces el botón de atrás.

Espero te sea útil.

Saludos
Responder Con Cita