дочерний iframe контролировал доступ к родительскому окну - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующая настройка на моей html-странице -

parent-page
     child-iframe

child-iframe и parent находятся в одном домене.

Учитывая, что обе страницы принадлежат одному домену -дочерний iframe может напрямую обращаться к объекту родительского окна и его членам и может изменять / изменять вещи по своему усмотрению - так, например, для: child-iframe потенциально может выдавать -

  parent.document.body.innerHTML = "hello"; 

Я хочу что-то вроде "контролируемая »установка - где я хочу выборочно разрешить доступ только к JS-объектам определенного родителя. Например: я хочу полностью запретить доступ к объекту document родителя и добавлю отдельный объект JS, который дочерний элемент iframe будет использовать для прямого разговора с родителем.

Вопросэто возможно в браузере?

Чтобы добавить некоторые детали - я попытался установить атрибут «песочница» iframe для различных значений - например, для значения по умолчанию (все отключено) - но тогда я не могу передать объекты JS напрямую ч / бparent и child-frame (и вызовите функции в этих объектах js)

Я попытался установить для песочницы «allow-same-origin» - но это то же самое, что не указывать атрибут песочницы (по крайней мере для страниц изsame-domain).

Кроме того, я не хочу использовать маршрут postMessage для моего случая использования, причина в том, что я хочу, чтобы связь была синхронной - использование postMessage означало бы, что мне нужно реорганизовать свои внутренние API длябыть асинхронным, чего я хочу избежать.

Спасибо,

...