cookies Django, ajax y HttpOnly

1

Mientras leía "Web enredada" encontré una descripción de las cookies http solo y quería probarla en mi proyecto, así que agregué estas configuraciones de acuerdo con docs :

CSRF_COOKIE_HTTPONLY = True
SESSION_COOKIE_HTTPONLY = True

Y fui a la consola a sumergirme en ella. Como era de esperar, no se mostró ningún token csrf o cookie de sesión cuando ejecuté algunos JS:

> document.cookie
"djdt=hide"

Sin embargo, tengo AJAX ejecutando en segundo plano el sondeo de algunos datos del servidor que comienzan con:

function doPoll() {
    $.get(predefinedUrl){
        (...)

Y parece que de alguna manera tiene acceso a estos datos: .

Mispreguntasson:¿Cómoesaccesibleestainformación?¿Essuficientequeestescripthagaunasolicitudamisitioyqueelnavegadorseencarguedelresto(comolohaceencasos"normales")? ¿Significa que debería poder activar de forma segura esta marca de solo http de forma predeterminada y no preocuparme de que los scripts frontend no puedan realizar solicitudes? ¿Hay algo por lo que debería prestar atención?

    
pregunta gonczor 20.02.2018 - 00:06
fuente

1 respuesta

1
  

¿Cómo se puede acceder a estos datos?

No lo es. Si su navegador emite una solicitud, incluidas las solicitudes AJAX, incluirá todas las cookies para el dominio de destino en el encabezado Cookie , incluso las cookies httpOnly . 1 Sin embargo, su script no puede acceder a ellas. ya que los encabezados Set-Cookie y Cookie son encabezados prohibidos por especificación y no se pueden extraer ellos con, por ejemplo, XMLHttpRequest.getResponseHeader('Set-Cookie') .

  

¿Significa que debería poder activar de forma segura esta marca de solo http de forma predeterminada y no me preocupa que los scripts frontend no puedan realizar solicitudes?

Con las cookies httpOnly su script aún puede realizar solicitudes autenticadas, simplemente no puede leer los valores de las cookies httpOnly que se envían. Al activar httpOnly solo se rompe la funcionalidad si maneja explícitamente las cookies en el lado del cliente.

1 sameSite cookies pueden ser una excepción.

    
respondido por el Arminius 20.02.2018 - 00:53
fuente

Lea otras preguntas en las etiquetas