2011-07-13 3 views
5

Не могли бы вы помочь мне понять, что реализация Chrome для HTML5-атрибутов iframe-песочницы разрешает однопользовательскую и разрешающую навигацию?Проблема с атрибутами песочницы HTML5

Первый вопрос:

Например, когда я тест-разрешения же происхождения я:

<iframe id='frm' src="file.html" sandbox="allow-same-origin"></iframe>  
...  
oIFrame = document.getElementById('frm'); 
var oDoc = (oIFrame.contentWindow || oIFrame.contentDocument);  
if (oDoc.document)  { 
oDoc = oDoc.document; 
oDoc.getElementById('foo').innerText = 'Hello man!'; 
... 

Содержание file.html:

... 
<div id="foo">Hello</div>  
... 
alert(document.cookie); 
... 

и это только работа когда у меня есть дополнительный атрибут, называемый allow-scripts, поэтому у меня есть песочница = «allow-scripts allow-same-origin». Alone allow-same-origin не работает, а отдельные скрипты позволяют работать отлично (скрипты выполняются, но не связаны с API SOP, его подход относится к стандарту HTML5).

Стандарт HTML5 говорит:

«Во-первых, он может быть использован, чтобы контент с того же сайта, чтобы быть в песочнице, чтобы отключить сценарии, в то же время обеспечивая доступ к DOM в изолированном содержании.»

Я неправильно понял, что реализация Chrome неверна?

Второй вопрос:

Стандарт HTML5 говорит о позволяют-топ-навигации:

«Во-вторых, он может быть использован для встраивания контента с сайта третьей стороной, песочницу, чтобы предотвратить этот сайт от открытия всплывающих окон и т. д., не препятствуя тому, чтобы встроенная страница обменивалась данными с исходным сайтом, используя API-интерфейсы базы данных для хранения данных и т. д.

Мои всплывающие окна в Chrome не заблокированы. Как я могу заблокировать их? Я использую только allow-top-navigation.

Приветствие, Дэвид

ответ

0

Для первого вопроса: Оказывается это означает, что родительская страница может по-прежнему иметь доступ к DOM из песочницы , в то время как скрипты в сами блокируются от исполнения; так что это только parent -> iframe но не iframe -> parent

Второй вопрос: Может быть, я недоразумение, но как имя allow-top-navigation подразумевает это позволит, а не блокировать обрамленный сайт с помощью вещей, как top.location.replace().

Смежные вопросы