¿Wp_logout_url () destruye una sesión? (Desconectando la pregunta)

4

Tengo un problema ridículo con el cierre de sesión de los usuarios de mi sitio. Básicamente, el cliente tiene datos confidenciales y cuando llamo a wp_logout_url redirigir a otra URL. Está bien, pero el navegador almacena en la memoria caché la página y se puede ver al presionar ATRÁS .

¿Hay alguna forma en que pueda evitar que esto suceda, o es un problema que no se puede resolver?

El sitio está protegido por un formulario de inicio de sesión en el extremo frontal, por lo que no es / wp-admin .

    
pregunta SMacFadyen 19.09.2012 - 15:35

2 respuestas

3

Esto no es sorprendente o raro, es cómo funcionan los navegadores, las páginas se almacenan en caché y forman parte del historial del navegador. Esto no es específico de WordPress pero hay muchas aplicaciones web por ahí.

También hay diferentes enfoques para proporcionar una solución. Para una (no es una solución muy buena), borrando el historial del navegador .

Por otro: enviar encabezados de caché especiales, como lo hace Twitter. Consulte el RFC para obtener información específica.

Asegurarse de que una página web no sea El almacenamiento en caché en todos los navegadores también es un buen punto de partida.

Puede agregar los encabezados anti-caché para los usuarios registrados que verán la información confidencial. Todas las páginas con información confidencial tendrían que tener estos encabezados para que los navegadores puedan obedecerlos y volver a validarlos al presionar de nuevo después de cerrar la sesión. Para todos los demás (sin iniciar sesión) mantenga el caché del navegador disponible, lo que generalmente es una buena idea.

Configuración de encabezados en WordPress , contra is_user_logged_in o user_can es bastante sencillo.

add_action( 'init', function() {
    /* Force no-cache headers on *ALL* front pages and in *ALL* cases */
    /* Proof of concept, do not use */
    header( 'Cache-Control: no-cache, no-store, must-revalidate' );
    header( 'Pragma: no-cache' );
    header( 'Expires: 0' );
    /* Do same for admin_init to get dashboard to not cache */
} );

Probó lo anterior y parece funcionar, al menos en Chrome. Espero que esto ayude. Buena pregunta, me pregunto por qué WordPress no fuerza la reautenticación en al menos las páginas del Panel.

Boleto creado para abordar el problema general del Administrador: enlace

    
respondido por el soulseekah 20.09.2012 - 11:21
0

Wordpress no utiliza el almacenamiento de sesión del lado del servidor en absoluto: solo cookies (almacenamiento de sesión del lado del cliente).

Y no tiene oportunidad de acceder al historial del navegador web ...

Para deshabilitar el almacenamiento en caché (como se indicó anteriormente) suena prometedor, pero seguro que necesita más recursos.

No lo haría, simplemente porque la velocidad de la página se vería afectada.

    
respondido por el Martin Zeitler 26.09.2012 - 07:37

Lea otras preguntas en las etiquetas