Guardar tokens de autenticación en sitios web de terceros

5

Por lo tanto, Flickr le permite autenticar usuarios a su aplicación a través de app_key y secreto y devuelve un token de autenticación. Quiero guardar de forma segura ese token de autenticación en mi base de datos, pero también poder revertirlo para que la aplicación pueda realizar llamadas autenticadas para ese usuario. No estoy seguro de cuál es la mejor manera de hacerlo o si eso es lo que debería estar haciendo. Quiero mantener ese token de autenticación para que cuando un usuario vuelva a iniciar sesión en mi sitio, ya tenga el token de autenticación.

    
pregunta mnguyen 18.06.2015 - 07:36
fuente

2 respuestas

1

La respuesta rápida es que almacenar los tokens de autorización de texto sin formato en una base de datos no es un problema, pero hay algunos otros aspectos que son más críticos para mantener a salvo los tokens (y su uso).

Asegúrese de que oauth_consumer_key (clave de aplicación) y oauth_token (token de autorización) nunca se envíen o almacenen en el lado del cliente (el navegador de los usuarios, el teléfono, etc.). Esto significa que las solicitudes al Proveedor de servicios (Flickr) siempre deben realizarse desde un servidor que tenga acceso a la base de datos y luego los datos recibidos de los datos del Proveedor de servicios se pueden reenviar al cliente. Si almacena la clave y el token en el lado del usuario, entonces podrán suplantar su aplicación y acceder a datos restringidos.

Para asegurar la clave y los tokens durante la solicitud de su servidor a Flickr, realice la solicitud como POST a través de HTTPS. De esta manera, un intruso no puede tener acceso a sus fichas mientras están en camino a Flickr.

Proteja su base de datos, no cifrando los tokens, sino asegurándose de que no sea posible ningún acceso no autorizado a la base de datos. Si su base de datos se ve comprometida (por ejemplo, inyección de SQL, cualquier otra inyección), las medidas anteriores no tienen ningún efecto. Esto es algo bueno que hacer en general, y lo aconsejo sobre usted cifrando los tokens en la base de datos.

Fuentes: OAUTH v1.0 y API de autenticación de Flickr .

    
respondido por el Juha Kivekäs 18.06.2015 - 14:17
fuente
0

Así que pensé que puede guardar un lado del cliente con clave hash en una sesión / cookie. Básicamente, esto significa que el servidor no podrá hacer nada con ninguna información porque no tienen el mapa que indica que esta persona está conectada con esta api / propiedad. El cliente tiene 1 mitad de la clave y el servidor tiene la otra mitad de la clave. Haría esto con algo como correo electrónico + contraseña, siendo la contraseña la clave. El único problema con eso es sincronizar las propiedades cuando las contraseñas cambian inevitablemente. Me gusta este enfoque a medias y me gustaría aplicarlo a otras formas. Sería genial crear una base de datos que sea pública, pero imposible obtener información valiosa sin la otra mitad de la "clave". No lo sé, también parece que nos estamos alejando de las "contraseñas de entrada" en conjunto.

    
respondido por el mnguyen 22.07.2015 - 22:05
fuente

Lea otras preguntas en las etiquetas