2010-10-31 22 views
7

Una vez que reciba mi token de acceso para un sitio (digamos Facebook) usando OAuth, ¿qué tan importante es mantener este secreto? ¿Podría pasar algo malicioso si alguien consigue una?¿Cuán importante es mantener secreto el token de acceso de OAuth?

Me preguntaba si sería una mala idea guardar el token en una cookie o sesión.

+0

Es posible que no desee almacenar en una cookie, pero una sesión está bien. La idea es que las cookies sean consideradas como "ingresadas por el usuario" y no sean confiables (a menos que se utilicen cookies firmadas), lo que significa que técnicamente deberá consultar su base de datos para validar que el token de acceso es válido antes de usarlo. Eso ya está hecho para ID de sesión en el nivel de sesión en la mayoría de los marcos web. –

+2

Además de la validez, estoy más preocupado por la seguridad. Así que tomé el access_token que obtuve de Facebook y en una computadora diferente ejecuté curl -F 'access_token = 162032318056 | 2.0r19NN8CJ3qiz2e0dA_G6w __. 3600.1288576800-6423201 | q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message = PRUEBA' https://graph.facebook.com/me/feed Este comando publicó TEST en mi muro. Entonces, me preocupa que un usuario malintencionado pueda leer las cookies de alguien, tomar el token de acceso que obtuvieron de un sitio y luego poder ejecutar comandos privilegiados en la cuenta de alguien de Facebook. De esta prueba parece que es posible –

+0

Brad, ¿descubrió una solución? Aparte de la sesión o una cookie, ¿dónde más podría almacenarla? Guardarlo en DB cada vez que el usuario inicia sesión y luego consultar parece una idea engorrosa en el mejor de los casos ... – Alexandra

Respuesta

4

Actualización: si está haciendo que el usuario se conecte con javascript sdk, los identificadores de usuario y tokens de acceso ya se guardarán en las cookies de su sitio. Verifique las cookies http que se envían. Si no lo están, consulte la documentación de FB.Init, ya que FB.Init tiene un parámetro booleano de cookies que puede configurar para que cree una cookie para usted denominada fbs_ {APPID}. This mensaje habla de esa cookie.

+0

Parece que una vez que obtengo el access_token no necesito ninguna otra clave para hacer cosas privilegiadas. Me voy a meter la pata. más supongo. ¡Gracias! –

+0

Yuily tienes razón. Actualicé la respuesta. – bkaid

2

Sí, el token de acceso es equivalente a su nombre de usuario/contraseña. La mayoría de las implementaciones vencerán el token de acceso después de un tiempo, pero mientras aún es válido, debe mantenerse en secreto.

Cuestiones relacionadas