Foros del Web » Programando para Internet » PHP »

como soluciono este script de sesiones y seguridad?

Estas en el tema de como soluciono este script de sesiones y seguridad? en el foro de PHP en Foros del Web. Hola a todos, tengo una aplicacion para un colegio y para la seguridad utilizo el sgte script Código PHP: <?php session_cache_limiter ( 'private_no_expire' ); session_start ...
  #1 (permalink)  
Antiguo 06/06/2007, 10:17
 
Fecha de Ingreso: junio-2007
Mensajes: 254
Antigüedad: 16 años, 11 meses
Puntos: 2
como soluciono este script de sesiones y seguridad?

Hola a todos,

tengo una aplicacion para un colegio y para la seguridad utilizo el sgte script
Código PHP:
<?php
session_cache_limiter
('private_no_expire');
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI")  {
    
//si no existe, envio a la página de autentificacion
    
header("Location: ../index.php");
    
//ademas salgo de este script
    
exit();
}
?>
este script lo incluyo en todas las paginas php
la linea session_cache_limiter('private_no_expire'); la puse para que no muestre el mensaje de pagina caducada cuando vuelvo atras, el problema es que al dar click al boton salir y volver al home, si vuelvo atras con el boton de Atras del navegador y entra en la aplicacion ese es el problema, es decir una vez que se de click al boton Salir y que me lleva al home si vuelvo Atras con el boton del navegador no deberia permitir ver las paginas por las cuales visito la persona que abandono la sesion:
el script de salir.php es el siguiente
Código PHP:
<?php
session_start
();
session_destroy();

header("Location: ../index.php");
exit;
como soluciono este problema?
gracias por la ayuda,
saludos.
  #2 (permalink)  
Antiguo 06/06/2007, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: como soluciono este script de sesiones y seguridad?

Es mejor si utilizas esto para salir:
Código PHP:
session_start();
$_SESSION = array();
session_destroy(); 
  #3 (permalink)  
Antiguo 06/06/2007, 17:25
 
Fecha de Ingreso: junio-2007
Mensajes: 254
Antigüedad: 16 años, 11 meses
Puntos: 2
hola GatorV,

lamentablemente no funciona, sigo entrando a la aplicacion cuando doy el boton de Atras del navegador, funcionaria si retiro la linea:

session_cache_limiter('private_no_expire');

del script de seguridad.php pero si lo hago cuando vuelvo atras dentro de la aplicacion me sale el mensaje de pagina caducada

gracias por la ayuda,
saludos.
  #4 (permalink)  
Antiguo 06/06/2007, 18:57
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Re: como soluciono este script de sesiones y seguridad?

Hola

¿Por qué usas session_cache_limiter()? Creo que le estas pifiando a la forma en la que armas las sesiones ó en cómo configuraste tu servidor para que las maneje...

Cuando abris session:

session_start();

// BASTA con cargar un dato en sessión.
$_SESSION['id_user'] = $data['id_user_en_db'];


Cuando queres saber si hay una session

session_start();

if (isset($_SESSION['id_user'])) {
echo "Hola amigo";
} else {
echo "No eres mi amigo";
exit();
}


Cuando queres borrar la sesion:
session_start();

session_unset(); // SIEMPRE antes de destruir
session_destroy();


Cuando tenes que hacer un redireccionamiento:

session_start();

"..."

session_write_close();
header("Location: ../../../dev/nul"); // Al aujero negro!
exit();



¿Sobre qué corre tu server? ¿estas tirando algun header(); antes de mostrar las páginas?

A mi me huele a que el error está en como tenes configurado PHP en tu server.


Saludos.
  #5 (permalink)  
Antiguo 07/06/2007, 07:35
 
Fecha de Ingreso: junio-2007
Mensajes: 254
Antigüedad: 16 años, 11 meses
Puntos: 2
Hola Computer XTress,

mi sistema como otros tiene un login, una admitido inicia una sesion, la sentencia:

session_cache_limiter('private_no_expire');

en el script se seguridad lo pongo para que cuando el usuario de al boton de Atras del navegador no le salga el mensaje de pagina caducada, sino vuelva atras sin problemas, porque eso hacen los usuarios noveles van a una pagina y vuelven atras con el boton del navegador, aunque tengo un menu quisiera dar la alternativa de usar el boton de Atras del navegador.

Ahora cuando el usuario quiere terminar la sesion existe un boton salir donde se ejecuta el script salir.php que mostre en el primer post, destruyo la sesion y redirijo al home, y una vez el home si doy con el boton de Atras del navegador muestra las paginas por donde ha navegado la persona que acaba de salir, esto no deberia pasar, una vez que se ha deslogueado diremos asi, que no pueda volver a ver la paginas, que salga cualquier mensaje: pagina caducada, que se actualice en el home o lo que sea, pero que no vea las paginas despues de salir de la sesion,

si borro la linea sesion_cache_limiter el script funciona bien, pero el problema entonces es que cuando el usuario que se haya logueado correctamente de volver atras dentro del sistema le saldra el mensaje de pagina caducada, bueno, yo borro lo de sesion_cache_limiter pero como impido que me salga el mensaje de pagina caducada? cualquier camino seria valido,

gracias por la ayuda,
saludos.
  #6 (permalink)  
Antiguo 07/06/2007, 07:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: como soluciono este script de sesiones y seguridad?

Ese error te sale porque es comun que de un formulario POST te envia a una pagina y en esa pagina imprimes directo el contenido.

Para solucionar ese problema de que ha caducado la pagina tienes que tener una pagina intermedia ej:

Pagina1.php -> POST a pagina2.php, pagina2.php valida los datos si son correctos se levanta la sesion y se envia a pagina3.php via header().

Asi cuando en pagina3.php haces click con el boton de "back" te regresa a pagina1.php y sin problema y no te sale el mensajito de que ha caducado la pagina.

Saludos.
  #7 (permalink)  
Antiguo 07/06/2007, 08:55
Avatar de navy  
Fecha de Ingreso: febrero-2006
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: como soluciono este script de sesiones y seguridad?

Mira si pusieras en tu pagina seguridad
if (!isset($_SESSION['autentificado']){
session_destroy();
header("Location: ../index.php");
exit;
}

podria ya poner session_cache_limiter('private_no_expire'); y ademas virar con el boton del navegador.
Saludos
  #8 (permalink)  
Antiguo 07/06/2007, 16:54
 
Fecha de Ingreso: junio-2007
Mensajes: 254
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: como soluciono este script de sesiones y seguridad?

Gracias por la ayuda,

despues de mucho buscar y pensar, encontre una solucion no la ideal, consiste en que cuando el usuario da al boton salir me lleva a la pagina salir.php, en esta pagina incluyo el script de seguridad seguridad.php mediante un include, y le adiciono un codigo en js para no volver atras algo de history.go(1) en el body y le pongo un enlace para ir a la pagina principal, no redirecciono, es decir el usuario para salir tendra que dar al boton salir y en salir.php dar al enlace pagina principal una vez en la pagina principal se puede volver atras a salir.php pero me redirecciona inmediatamente a la pagina principal debe ser por lo de script seguridad.php
Código PHP:
seguridad.php
<?php
session_cache_limiter
('private_no_expire');
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI" )  {
    
//si no existe, envio a la página de autentificacion
    
header("Location: ../index.php");
    
//ademas salgo de este script
    
exit();
}
?>
Código PHP:
salir.php
<?php
include_once('../seguridad/seguridad.php');
session_start();
$_SESSION = array();
session_unset();
session_destroy();
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Salir de la Aplicación</title>
<script language="javascript">
function NoAtras(){
history.go(1)
}
</script>

</head>
<body onLoad="NoAtras()">

Aun esta dentro del sistema, por favor utilize el siguiente enlace
<a href="../index.php">Pagina Principal</a>
</body>
</html>
lo pongo por si ustedes notan problemas de seguridad y si por si le sirve a alguien, si hay una solucion mejor me avisan,
saludos.
  #9 (permalink)  
Antiguo 07/06/2007, 20:02
Avatar de navy  
Fecha de Ingreso: febrero-2006
Mensajes: 36
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: como soluciono este script de sesiones y seguridad?

No se si probaste tu aplicacion con lo que te postie anteriormente, pues seria mejor tratar las cosas de seguridad desde el servidor y no desde el cliente, donde tiene acceso el usuario y que ademas bien pudiera tener desabilitado el JavaScript en su navegador.

Saludos.
  #10 (permalink)  
Antiguo 09/06/2007, 07:55
 
Fecha de Ingreso: junio-2007
Mensajes: 254
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: como soluciono este script de sesiones y seguridad?

Hola Navy, como te va,
si probe el script pero no funciono es decir siguia entrando a la aplicacion si le dabas al boton volver despues de salir, en cuanto a lo que decis tienes razon, pero aun no he encontrado otra solucion, hasta que encuentre otra, tendre que manejarla esa.

gracias por la ayuda,
saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:10.