iframe postMessage () междоменная проблема безопасности - PullRequest
0 голосов
/ 11 ноября 2018

Я разработал приложение, которое можно встроить через iframe на любой веб-сайт. Пользователь получает скрипт, который создает кнопку, похожую на (домофон, дрейф ...), и при нажатии на нее iframe добавляется на страницу, а затем открывается как модальный. Виджет принимает личную информацию и обрабатывает платеж через Stripe. Вся информация вводится в iframe и не передается с родительской страницы.

Внутри модального окна есть кнопка закрытия [x], при нажатии которой модальное окно скрывается через событие postMessage, отправленное на родительскую страницу.

// inside iframe
$('#CloseModal').on('click', function() {
   parent.postMessage({ hide: 'hide-modal'}, '*');
});

// in parent page
var modal = document.getElementById('#IframeModal');
window.onmessage = function(msg) {
   if (msg.data.hide === 'hide-modal') {
      modal.style.display = 'none';
   }
};

Я не могу установить исходный домен, поскольку очень сложно контролировать точный домен, в который пользователь собирается встроить виджет. Единственная причина, по которой мне нужно отправлять сообщения между iframe и родителем, заключается в том, что пользователь может закрыть модальное окно из iframe.

У меня вопрос: если это единственное сообщение, отправленное из iframe родительскому устройству, и не будет никаких других сообщений, отправленных от родительского в iframe, какой безопасности я подвергаю себя или веб-сайт клиента?

Примечание: я провел много исследований и не смог найти какой-либо конкретной информации по моему вопросу.

...