¿Problemas de seguridad del SDK de Javascript de Facebook?

0

Estoy tratando de insertar facebook auth en mi aplicación. Mi esfuerzo inicial fue iniciar sesión en el navegador y obtener el código. Devuelvo este código a mi api y obtengo el token de acceso (que permanece con el servidor) y dirijo todas mis solicitudes a FB Api a través de mi servidor. Me pareció totalmente seguro ya que mi cliente no tiene información para poder realizar llamadas autorizadas a FB como mi aplicación.

Sin embargo, he estado buscando en FB Javascript SDK para evitar escribir código para abrir y cerrar diálogos y he notado que me permite getLoginStatus y me devuelve el token de acceso. Además, repasé los flujos de autenticación FB en su documentación y dicen que el flujo híbrido de cliente-servidor está bien para hacer donde el servidor realmente entrega el "token de acceso de larga duración" al cliente y me aconseja usar HTTPS (justo).

Ahora todo esto me hace pensar si se trata de un problema de seguridad. ¿No puedo, como potencial pirata informático, inyectar un poco de javascript en la página web del usuario que podría
a) hacer un getLoginStatus y obtener el token de acceso o b) solo obtener el token de acceso al realizar una solicitud a mi api server y obtenga el token de acceso
y luego utilícelo para publicar (suponiendo que el usuario autorizó mi aplicación para hacerlo) en Facebook como si mi aplicación lo estuviera haciendo.

Soy un novato en seguridad y quizás esté pasando por alto un montón de cosas aquí, pero ¿podría alguien ayudarme a entender lo que me estoy perdiendo?

Gracias de antemano!

PS: Sé que puedo habilitar una mayor seguridad para garantizar que necesito la aplicación secreta cada vez que quiero hacer una solicitud que el cliente no puede hacer ya que esa información nunca estará disponible en el lado del cliente.

    
pregunta stripathi 14.05.2017 - 09:45
fuente

1 respuesta

2

Creo que la clave aquí es que el token de acceso devuelto por el lado del cliente tiene una duración muy corta (10min). En ese sentido, creo que el secuestro de sesiones podría ser posible, pero luego ofrece un riesgo limitado, similar a los procedimientos normales de mitigación de riesgos de sesión para muchos sistemas de autenticación.

    
respondido por el Chad Lieberman 14.10.2017 - 12:59
fuente

Lea otras preguntas en las etiquetas