Содержимое песочницы в IFRAME на стороне клиента

Вопрос

У меня есть некоторый javascript-контент, который я хочу поместить в «песочницу» в iframe:


Загвоздка в том, что из-за характера нашего веб-приложения мне нужно сделать это встроенным на родительской странице, содержащей iframe, и мне нужно сделать это кросс--совместимым с браузером способом.

URL-адрес данных... почти, но не совсем

Мне удалось добиться желаемого эффекта в Chrome, настроив содержимое в iframe с помощью URL-адреса данных:


Однако поддержка URL-адресов данных несовершенна, и это должно работать в браузере -.

Document.write получает туда содержимое, но ему не хватает междоменной -безопасности

Я могу иметь небезопасный контент в экранированной строке javascript, а затем записать его как содержимое iframe:



Проблема заключается в том, что как только я пишу этот контент в iframe, междоменная безопасность, -, по-видимому, больше не существует (, что означает, что doSomethingPotentiallyMaliciousфункция имеет доступ ко всему в родительском окне ).

Document.write + Document.domain, похоже, тоже не привели нас к этому

Я даже пытался изменитьdocument.domain(удалив левый -самый домен, чтобы «www.example.com» стал «example.com» )согласно этому предыдущему сообщению SO , но это, похоже, не навязывает крест -политика домена либо:



Является ли то, что я пытаюсь сделать, даже технически осуществимым на данный момент?

6
задан Community 23 May 2017 в 11:48
поделиться