No soy un experto en seguridad, por lo que espero que algunos de ustedes puedan decirme si existen fallas en el diseño de seguridad de mi aplicación web. Con suerte, podré explicar esto lo suficientemente claro como para explicar mi punto.
Tengo un sitio web que hace llamadas a mi api. Ambos utilizan SSL y están alojados en Azure, pero tienen diferentes dominios / servidores. También estoy usando tokens de portador ASP .Net Identity 2.0 y OAuth, con un vencimiento de 30 días, para hacer un seguimiento de si un usuario está "registrado" o no.
Los usuarios pueden iniciar sesión a través del sitio web principal o mediante un widget que se puede agregar a CUALQUIER sitio de terceros.
Para mantener las cosas seguras, el widget crea un iframe que apunta a una página en mi servidor api, y toda la funcionalidad, como el inicio de sesión y el procesamiento de transacciones, tiene lugar dentro de este iframe.
La página principal usa postMessage para comunicarse con el iframe cuando algo debe suceder, pero para evitar que algo en la página principal tenga acceso a ese token, solo existe dentro del almacenamiento local / de la sesión de iframe y nunca se comunica de nuevo la pila.
Hasta ahora, todo parece funcionar como estaba previsto, pero me he encontrado con un escenario en el que ahora necesito comunicarle el token al padre para el código que se ejecuta en mi sitio web. Sin embargo, no me atrevo a hacerlo, ya que potencialmente crea un agujero de seguridad.
¿Alguien tiene alguna idea sobre si esto es un riesgo aceptable para el código que controlo, o si hay algún problema con el enfoque general que he tomado?