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 .