Cómo usar el mensaje de correo de forma segura

20

postMessage es una primitiva introducida en HTML5 que las páginas web pueden usar para la comunicación de origen cruzado.

¿Qué debo hacer para usar postMessage de forma segura? ¿Cuáles son las principales fallas o errores de seguridad que debo tener en cuenta?

    
pregunta D.W. 11.09.2012 - 09:12
fuente

1 respuesta

14

Las Las instrucciones de seguridad del W3C para esto son sorprendentemente precisas y completas:

  

Los autores deben verificar el atributo de origen para asegurarse de que los mensajes son   Sólo se acepta de los dominios de los que esperan recibir mensajes.   De lo contrario, los errores en el código de manejo del mensaje del autor podrían ser   explotado por sitios hostiles.

     

Además, incluso después de verificar el atributo de origen, los autores deberían   También verifique que los datos en cuestión sean del formato esperado.   De lo contrario, si la fuente del evento ha sido atacada usando un   error de secuencias de comandos en sitios cruzados, procesamiento de información aún más no controlado   enviado usando el método postMessage () podría resultar en el ataque   propagado en el receptor.

     

Los autores no deben usar la palabra clave comodín (*) en targetOrigin   argumento en los mensajes que contienen cualquier información confidencial, como   De lo contrario, no hay forma de garantizar que el mensaje sea solo   Entregado al destinatario al que estaba destinado.

     

Se recomienda a los autores que acepten mensajes de cualquier origen que consideren   Los riesgos de un ataque de denegación de servicio. Un atacante podría enviar un alto.   volumen de mensajes; Si la página que recibe es costosa   cálculo o causa que el tráfico de red se envíe para cada uno de tales   mensaje, el mensaje del atacante podría ser multiplicado en un   Ataque de denegación de servicio. Se anima a los autores a emplear tasa   limitando (solo aceptando un cierto número de mensajes por minuto) a   hacer tales ataques imprácticos.

Lo más importante es validar siempre el origen: se sorprenderá de la cantidad de sitios que no lo hacen. Si el mensaje es confidencial, se debe especificar el argumento targetOrigin.

Esto, por supuesto, supone que la implementación del navegador es correcta y sin agujeros. Se han evaluado los principales navegadores y no se han encontrado problemas.

Consulte también esta Lista de verificación para la revisión de seguridad posterior al mensaje .

    
respondido por el David Wachtfogel 28.09.2012 - 08:56
fuente

Lea otras preguntas en las etiquetas