Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Evitar que las páginas se guarden en el historial de navegación

Hola a todos

Me gustaría saber si existe alguna forma de evitar que los script que ejecuto dentro del entorno de mi aplicación web se guarden en el historial del navegador de internet.

He tomado precauciones para validar los permisos de un usuario al acceder a las páginas y también con respecto a la caducidad de las sesiones. Sin embargo, considero que sería bueno que algunas páginas críticas o restringidas no se guarden en el historial.

Estoy usando PHP 5.2.2 en un servidor Apache 2

Agradezco desde ahora cualquier aportación.

Saludos
Responder Con Cita
  #2  
Antiguo 11-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si voy a decir una tontería. Hasta donde yo llego un script PHP nunca se "guarda" en el cliente. Como mucho podrá "cachearse" su resultado, pero, no el propio script. ¿Qué quiero decir con esto? Pues que, cuando el script se ejecute, ofrecerá el resultado que el script quiera, no el que el navegador "guardase" antes.

Existen cabeceras HTTP para indicar que no se guarde en caché el resultado de nuestro script. Pero, estas serán cuando menos problemáticas, puesto que al cabo dependerá del cliente (navegador) guardar o no el resultado del script en cuestión. Por tanto no podríamos fiarnos de estas cabeceras, aunque es cierto que existen, y, me consta que se usan.

Tal vez sea lo único que pueda hacerse. Buscar información acerca de estas caberas HTTP y utilizarlas. En cualquier caos, no me queda del todo claro cuál es el problema, dónde están esas "páginas críticas o restringidas", qué es lo que las hace críticas y restringidas. Cómo es posible que alguien pudiera llegar a ellas desde el caché del navegador.

Vale. No he respondido absolutamente nada. Pero lo he intentado, ¿eh? Y he dado un empujoncito a este hilo a ver si algún otro compañero, ¡tú mismo!, puede aportar alguna otra cosa para ayudar con este asunto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 11-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Usa una sóla página, carga todo lo demás con ajax y olvídate del historial

Bye
Responder Con Cita
  #4  
Antiguo 11-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por keyboy
Usa una sóla página, carga todo lo demás con ajax y olvídate del historial
Pero el historial es bueno, es nuestro amigo.

Y lo cierto es que hay aplicaciones "Ajax" que tienen que "imitar" al historial...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 11-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
No. Si yo estoy de acuerdo contigo, pero bueno, él quiere no tener historial

La verdad es que sería mejor si Héctor nos describiera con más detalle una situación en la que quiera omitir páginas del historial para poder saber si sería realmente lo adecuado o qué alternativas pueda haber.

Bye
Responder Con Cita
  #6  
Antiguo 12-03-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Antes que nada gracias por responder

Cita:
Empezado por keyboy Ver Mensaje
Usa una sóla página, carga todo lo demás con ajax y olvídate del historial

Bye
Efectivamente, eso se puede hacer, tengo varios scripts que funcionan de esta forma, solamente buscaba una manera más directa de hacerlo para toda la aplicación.

Encontré que uno de los parámetros de los popups de Javascript es copyhistory=no, pensé que esta función me ayudaría,sin embargo, no funciona.

Código:
function abrir(theURL) {

var windowprops ="top=0,left=0,toolbar=no,location=no,copyhistory=no,status=no,menubar=no,scrollbars=yes, resizable=yes,width=800,height=800";
window.open(theURL,'_mi_ventana',windowprops);
}
Cita:
Empezado por Dec
no me queda del todo claro cuál es el problema, dónde están esas "páginas críticas o restringidas", qué es lo que las hace críticas y restringidas. Cómo es posible que alguien pudiera llegar a ellas desde el caché del navegador.
Hola David, solo por dar algún ejemplo, el usuario abre una sesión y dentro del sistema visita varias subpáginas, una de ellas recibe pagos por medio de tarjeta de crédito, otras muchas en dónde se permite el acceso solamente a usuarios autorizados y otras tareas más. En el historial del navegador va quedando huella de todas estas páginas por ejemplo:

Código:
http://www.sitio.com/area_restringida/altas.php
http://www.sitio.com/cobro.php?id_doc=2323
El personal de sistemas en la empresa que nos compró la aplicación considera que estas páginas no se deben guardar en el historial, ya que eventualmente los usuario intentarán abrirlas nuevamente.

Ya les expliqué que una vez que las páginas hicieron su función no podrán ejecutarlas nuevamente, y mucho menos abrirlas sin autorización, pero la cuestión es que no quisieran verlas en el navegador. De hecho tuve que ocultar los botones de navegación, pero no es suficiente, quieren que las páginas visitadas dentro de la aplicación no se vean en el historial.

En este momento, no estoy seguro de que se puedan ocultar las páginas del historial, pero si alguien sabe algo les agradecerá su ayuda.

Saludos
Responder Con Cita
  #7  
Antiguo 12-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tiene lógica lo que dices. Efectivamente, poco importa que una página esté en el historial, que no es lo mismo que el caché, cuando se visite de nuevo, siempre se ejecutará el correspondiente script, que comprobará si el usuario está autenticado, etc.

Ahora bien, ¿cómo hacer desaparecer del historial las páginas visitadas? Yo diría que no es posible. Y, aunque le encuentro sentido, por otro lado, puede que en esto se quiera ser más papista que el papa. Ahora bien, si es algo "obligatorio", pues entonces el compañero keyboy ha apuntado una posible solución.

Un tema interesante. Reconozco que nunca me informé de ello. No me suena que pueda hacerse algo así, el historial lo gestiona el cliente, y, cada cliente es un mundo, pero, no digo que no pueda hacerse, y sería interesante ver cómo y de qué manera.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 12-03-2008
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Jau!

Este problema de Hector tiene una solución facilisma: la mejor forma de que las url's desaparezcan del historial es que nunca se hayan guardado en el. ¿Cómo? pues muy fácil. No usando el metodo GET, así de sencillo.

Por ejemplo, el típico formulario para poner el usuario y la contrseña, o el que envía los datos de una tarjeta, o cualquier información medianamente sensible. Esos datos es mejor enviarlos vía POST, usnado un formulario, y asi no quedan guardados en el historial.

Esto, en realidad, no es un problema de seguridad. Es mas una cuestión de estetica y comodidad, y de sentido común.

Una url de un hipotético sistema de noticias, como:
http://server/noticias/ha_salido_delphi2008_y_es_gratis
está clarisimo que es el tipo de dirección que conviene que pueda ser guardada en el historial. Si usamos AJAX para un sistema así, y perdemos la ventaja que supone el disponer de url's amigables como esa, pues estamos haciendo el tonto. O el tonto perdío.

Supongamos que queremos ver los datos del pedido 3465. ¿que es mejor?
¿una url como http://server/tiendaonline/pedidos/3465 en la que poder hacer click, o un form con un input o un select, y un botón que envie el nº pedido vía POST ?

Gueno, creo que me explicao, mas o menos, creo.

¡Perrea, perrea!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #9  
Antiguo 12-03-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Hola Julián

Bien, ahora me queda claro que es una cuestión que puedo manejar a conveniencia con el método POST. Es cuestión de determinar cuales scripts serán tratados de esta manera para que no aparezcan en el historial.

Solamente falta ver que hago con algunas páginas que mando llamar directamente con la función header("location:url").

Gracias a todos por su ayuda.
Responder Con Cita
  #10  
Antiguo 12-03-2008
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Cita:
Empezado por Héctor Randolph Ver Mensaje
Solamente falta ver que hago con algunas páginas que mando llamar directamente con la función header("location:url").
Bueno, no lo he comprobado, pero habría que ver si las url's llamadas con la función Header() se guardan en el historial. En caso de ue así fuera pueeds hacerte una funcion alternativa que pida la url vía post. Así, a lo bestía se me ocurre una chapuza consistente en armar un form y un poquito de javascrit que haga un submit.


¡Perrea, perrea!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #11  
Antiguo 12-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por Julián Ver Mensaje
Supongamos que queremos ver los datos del pedido 3465. ¿que es mejor?
¿una url como http://server/tiendaonline/pedidos/3465 en la que poder hacer click, o un form con un input o un select, y un botón que envie el nº pedido vía POST ?
GET, desde luego.

GET para pedir datos, POST para poner datos.

Bye
Responder Con Cita
  #12  
Antiguo 12-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En el objeto "location" de JavaScript existe un método "replace", que tal vez podría servir para algo, puesto que sirve para reemplazar la URL actual "en el historial". Puede encontrarse más información en Internet. Sin embargo, se trata de una solución que pasa por usar Javascript y por el cliente. No sé hasta qué punto podría fiarse uno de algo así, pero, en fin, tal vez pueda ayudar algo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TWebBrowser, Historial de Navegación elcolo83 Internet 4 21-12-2007 14:47:04
Consulta Historial De Llamadas elprimo MS SQL Server 34 19-10-2007 20:05:38
Formulario desactivar historial papulo HTML, Javascript y otros 3 06-08-2007 17:13:47
Guardar el Historial de Internet Explorer Alexander Windows 0 17-02-2007 15:23:42
No permitir la navegacion? danytorres Internet 16 19-03-2004 15:38:50


La franja horaria es GMT +2. Ahora son las 01:26:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi