¿Es seguro compartir un token de acceso a través de la API de mensajería HTML5 entre varios iframes?

7

Tengo un sitio web principal que integra otros 3 sitios web a través de iframes (sistemas heredados que proporcionan varias funcionalidades con una interfaz de usuario). Actualmente, el usuario tiene que autenticarse con cada uno de los sistemas a pesar de que todos están usando el mismo servidor de autorización. Para hacerlo más fácil de usar, estaba pensando en compartir el token de acceso a través de los distintos iframes utilizando la API de mensajería HTML5 y me preguntaba si este enfoque es viable desde un punto de vista de seguridad.

    
pregunta westbeam87 10.10.2016 - 00:16
fuente

2 respuestas

2

postMessage API está diseñado para la comunicación entre dominios como parte de Mecanismo de intercambio de recursos de origen cruzado.

El método Window.postMessage (), introducido en HTML5, permite que el código JavaScript que se ejecuta en diferentes orígenes se comunique entre sí de manera bidireccional. Esta API se puede utilizar para la comunicación entre un iframe y su documento principal. De manera similar, una página HTML y una ventana secundaria pueden usarlo para intercambiar mensajes, como un video de terceros integrado que notifica a su marco principal cuando el usuario detiene el video.

Las reglas de seguridad clásicas también se aplican a las aplicaciones que usan postMessage (). Está planeando utilizar este método para compartir información de autenticación, lo que está perfectamente bien si sigue las reglas básicas de validación de entrada durante la implementación.

  1. Nunca transmita sus tokens de autenticación : su escenario contiene varias partes diferentes que necesitan tener acceso a un token común. es posible que tenga la tentación de transmitir la información de autenticación para que todos los iframes tengan acceso a ella. Esto puede resultar en acceso no autorizado a sus tokens. Por lo tanto, la llamada postMessage () siempre debe especificar el origen de destino.

  2. Valide siempre el origen del mensaje : debe validar que el mensaje se haya recibido de un origen válido y esperado. Solo después de la validación de origen, debe continuar con el uso del mensaje en la lógica de la aplicación. Imagine un caso en el que su aplicación esté enmarcada por un dominio malicioso. Si no valida el origen del mensaje, se puede producir una inyección de script.

Además, dependiendo de su relación de confianza con el servidor de autorización, es posible que desee validar el token una vez que se valide el origen del remitente.

Para un análisis más detallado de la seguridad de la API postMessage () junto con algunos fragmentos de código de ejemplo, consulte mi Blog

    
respondido por el Shurmajee 06.10.2017 - 08:24
fuente
0

Puede leer sobre las reglas que siguen los navegadores modernos en el control de acceso a cookies y dominios: RFC6265

IFrames por muchas razones no se recomiendan (como SEO, indexación de Google, seguridad, ...).

La nueva versión de los navegadores con configuración de dominio de cookie predeterminada es 99% segura en este tema. Sin embargo, la mayoría de los riesgos de seguridad en la historia de IFrame (y los navegadores) fueron sobre CSRF y XSS. Entonces, si protege sus sitios con tokens CSRF y métodos de filtrado XSS + Corrija la configuración del dominio de cookies, incluso con un navegador vulnerable es aproximadamente seguro usar IFrame.

    
respondido por el ShayanKM 10.10.2016 - 02:11
fuente

Lea otras preguntas en las etiquetas