2013-07-01 3 views
7

Я хотел бы создать безопасное соединение postMessage (исходное безопасное) с Iframe, созданным во время выполнения.JS - Как безопасно использовать window.postMessage, когда домен отправителя неизвестен

Текущее состояние: У меня есть сценарий, который генерирует IFRAME с определенным доменом (domain.b.com в приведенном ниже примере). Я хочу, чтобы iframe получал сообщения только из родительского домена (страницы, которая включала мой скрипт). Поскольку родительский домен неизвестен во время выполнения, я думаю о процессе «Рукопожатия», как описано и проиллюстрировано ниже:

  1. Ждите загрузки Iframe.
  2. Отправить postMessage из родительского домена с его происхождением.
  3. Установить разрешенное начало быть первый получил происхождение

Edit: Дополнительная информация:

  1. На моем сервере у меня есть белый список доменов (например, domain.a.com, any.domain.com, domain.b.com)
  2. Моя цель - интегрироваться с некоторыми из моих клиентов (например, domain.a.com, domain.b.com)
  3. После интеграции я хочу предотвратить хак rs, вводящие iframes, которые могут прослушивать конфиденциальную информацию по postMessage
  4. Я хочу, чтобы избежать проверки белого списка, я предпочитаю давать некоторые acessToken, но не уверен, что такое правильный поток.

Пример 1:

enter image description here


Пример 2:

enter image description here

Это правильный путь для его реализации?

+0

Я считаю, что вы допустили ошибку в своем втором примере. Я думаю, хотел сказать 'postMessage (« any.domain.com »,« domain.b.com »)' в вашем первом postMessage! – Mehran

+0

Вы правы ... извините за это –

+1

Есть ли причина, по которой вы не просто предоставляете родительский домен в URL-адресе, загруженном в iframe ('