Estoy construyendo una aplicación de redes sociales en Flash (AS3) estrechamente integrada con Facebook: todas las cuentas de usuario se manejan a través de Facebook y se maneja toda la conectividad de Facebook a través de una combinación de las API Javascript y AS3 Facebook. Estoy usando Codeigniter en el backend para la gestión de datos del lado del servidor, que incluye el seguimiento de las acciones y los datos del usuario en el sitio a través de URLRequests desde Flash.Aplicación de la autenticación de Facebook: del lado del cliente y del servidor
Mi problema es que no sé cómo evitar la falsificación de las solicitudes del servidor que se realizan desde Flash; en teoría, los usuarios maliciosos podrían rastrear las llamadas que Flash está haciendo a mi servidor y reproducirlas de una manera que (por ejemplo) inserte datos basura y los asocie con una ID de usuario de Facebook determinada en mi base de datos. Toda la autenticación se lleva a cabo en el lado del cliente (a través de la API JS de Facebook) sin intervención del servidor, por lo que estoy teniendo dificultades para averiguar exactamente cómo asegurar las llamadas entre Flash y el servidor de una manera que asegure que los usuarios tienen que ser autenticados con Facebook para poder hacerlos.
Una posibilidad que consideré es usar un esquema de encriptación conocido por el cliente y el servidor para pasar los UID de Facebook de ida y vuelta, lo que sin duda sería mejor que pasarlos a la vista. Sin embargo, solo tomaría un hacker emprendedor con suficiente tiempo/paciencia para romper el esquema (o descompilar el swf) para arruinar todo.
De todos modos, puede que esté pensando demasiado, pero parece ser un punto importante y realmente no estoy seguro del mejor enfoque. ¡Cualquier comentario sería muy apreciado!
Rook, ¿se refiere al token de acceso como la información sobre la sesión que está disponible para el cliente y puede ser utilizada por el servidor para conectarse a FB? – Totach
Solo para hacerte saber, tu enlace wiki.developers.facebook está roto. Referencia: meta.stackoverflow.com/q/101241/149820 – staticbeast
Esto es incorrecto. Si bien es una forma de lograr esto, más eficiente es usar la cookie establecida por las libs del cliente (javascript). – MetaChrome