Cerrar sesión de autenticación HTTP básica

4

Como se ve en enlace , hay algunas formas interesantes de cerrar la sesión de un usuario desde la autenticación básica HTTP.

Actualmente estoy enviando un HTTP 401 para hacerlo así:

GET logout.php

<?php
header('HTTP/1.1 401 Unauthorized', true, 401);
exit;

Y en las solicitudes posteriores, el navegador me indica con las credenciales modales. Al hacer clic en Cancelar, recibo una respuesta HTTP 401, el resultado deseado.

Esta es una aplicación interna y se usa HTTPS .

¿Hay algún problema de seguridad potencial con esto? Estoy usando el módulo LDAP (de ahí la autenticación HTTP básica). ¿Apache "almacena en caché" las credenciales de alguna manera o se verifican las credenciales con cada solicitud del usuario-agente? ¿Hay algo más que deba hacer para garantizar que las solicitudes sin credenciales válidas del agente de usuario siempre reciban una respuesta HTTP 401?

    
pregunta rink.attendant.6 30.09.2014 - 21:00
fuente

1 respuesta

5

Las credenciales de autenticación básicas se transmiten con cada solicitud del navegador. De ahí que tradicionalmente no se pueda "cerrar sesión" sin cerrar el navegador.

La razón por la que este enfoque funciona es porque el navegador no tiene estado. Normalmente, cuando envía una solicitud GET / POST / HEAD recibe una respuesta 200 OK. Si recibe una respuesta 401, solicitará al usuario las credenciales y volverá a enviar la solicitud con estas credenciales. Si esas credenciales son erróneas, el servidor enviará de nuevo una respuesta 401 y el navegador volverá a avisar. Entonces, cuando el navegador recibe una respuesta 401, asume que las credenciales enviadas en la solicitud anterior fueron incorrectas y volverán a preguntar.

Es importante recordar que confía en el comportamiento del lado del cliente para borrar las credenciales y solicitar nuevas al usuario y, como tal, siempre hay un riesgo asociado con algo fuera de su control.

    
respondido por el wireghoul 12.11.2014 - 05:13
fuente

Lea otras preguntas en las etiquetas