Если дочерний iframe загружен из другого домена, он не сможет получить доступ к родительской странице или DOM.
Тем не менее, существует еще одна возможная уязвимость для атаки «человек посередине», как показано ниже. Предположим, что ваша страница загружается http://yoursite.com, а iframe переходит на http://badsite.org
первый http://badsite.org перенаправляет на http://yoursite.com/badpage
Это шаг, который требует атаки "человек посередине". Злоумышленник должен либо иметь возможность попасть между пользователем и yoursite.com, либо контролировать ответы на ваш поиск DNS. Это проще, чем кажется - любой, кто имеет административный контроль над общедоступной точкой доступа WiFi, может это сделать (например, Starbucks, отели, аэропорты). Цель состоит в том, чтобы доставить контент http://yoursite.com/badpage с сайта злоумышленника, не ваш реальный сайт.
После этого (злоумышленник) может атаковать любой вредоносный код, который ему нравится. http://yoursite.org/badpage. Поскольку он находится в том же домене, что и главная страница, он будет иметь доступ к родительскому DOM.
Атрибут HTML5 iframe для песочницы, кажется, является способом избежать этого. Вы можете прочитать spec , но лучшее описание может быть здесь .
Это поддерживается в Chrome , IE10 , FireFox , Safari .
В спецификации сказано, что если атрибут «allow-same-origin» установлен , а не , «контент обрабатывается как уникальный источник». Это должно помешать вашему дочернему элементу iframe получить доступ к любой части DOM родителя, независимо от того, что браузер считает URL-адресом.