2010-06-19 10 views
20

Tengo una aplicación de Android que se autentica en una aplicación appengine. Lo he estado trabajando por un tiempo, hasta que expiró el authToken que me entregó (por el AccountManager de Android), causando un error de 500 cuando traté de usarlo para obtener una cookie de sesión.¿Por qué recibo una cookie de SACSID del inicio de sesión de google appengine en lugar de un ACSID?

Ahora he invalidado el authToken, pero después de eso todavía no puedo autenticar. Sin embargo, en lugar de arrojar un 500 (como lo hizo con el token de autenticación no válido), responde igual que el caso exitoso, pero en lugar de establecer una cookie "ACSID" como esperaba, establece "SACSID". Se parece mucho a una cookie de autenticación (dado que es aleatoria y larga), pero intentar acceder a los recursos autenticados utilizando esta cookie me redirige a la página de inicio de sesión.

¿Alguna idea de lo que está pasando?

Respuesta

37

¡la "S" es segura!

Finalmente descubrí que el problema es que estoy obteniendo la cookie de https://myapp.appspot.com/_ah/login pero tratando de acceder a las páginas autenticadas en http://myapp.appspot.com/. Ahora he cambiado al acceso a los recursos en https://myapp.appspot.com/ y funciona como se esperaba. Todavía no estoy seguro de cuándo o por qué cambió eso, y bastante sorprendido de que nadie en Internet haya mencionado una cookie SACSID alguna vez ...

+2

He estado luchando con esto por más tiempo de lo que me gustaría admitir. Debería haber sabido que la cookie que recibí en una sesión https no era válida en una sesión http. – prestomation

+1

Amigo eres Dios para mí: D – Shadow

+1

Gracias por ahorrarme el tiempo de investigación sobre esto! En realidad venía de la otra dirección. Me preguntaba si alguien que roba la cookie HTTP puede usarla para acceder al contenido protegido HTTPS. Esta es una buena noticia para la seguridad :) – kichik

Cuestiones relacionadas