2011-07-13 17 views
5

HTML5 iframe sanal alan özelliklerinin izin-aynı-menşe ve izin-üstü-gezinme özelliklerinin Chrome uygulamasını anlamama yardımcı olabilir misiniz?HTML5 iframe sandbox öznitelikleri sorunu

İlk soru:

Örneğin ben izin-aynı-kökeni yapmam test ettiğinizde: file.html ait

<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!'; 
... 

İçerik:

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

ve bu sadece bir iş izin-komut dosyaları olarak adlandırılan ek özniteliğe sahip olduğumda, bende sandbox = "izin-komut dosyalarının izin-aynı-kökenli olmasına" sahibim. Yalnız izin-aynı-kökeni işe yaramaz ve tek başına izin-komut dosyaları harika çalışır (betikler çalıştırılır, ancak API SOP değil, HTML5 standardıyla ilgili).

HTML5 standardı diyor ki:

"Birincisi, hala korumalı içeriğin DOM erişime izin verirken, komut dosyası devre dışı bırakmak için korumalı alan olması aynı sitedeki içeriği sağlamak için kullanılabilir."

Bunu veya Chrome uygulamasının yanlış olduğunu yanlış mı anladım?

İkinci soru:

HTML5 standardı hakkında allow-top-navigasyon diyor: İkinci

", o siteyi engellemek için korumalı alan, bir üçüncü taraf siteden içerik gömmek için kullanılabilir Katıştırılmış sayfanın kaynak siteye geri iletilmesini engellemeden, açılır pencereleri vb. açmadan veriyi depolamak için veritabanı API'lerini kullanarak. "

Popup'larım Chrome'da engellenmiyor. Onları nasıl engelleyebilirim? Sadece izin ver-navigasyon kullanıyorum.

Alkış, ilk soru için David

cevap

0

: ana sayfa hala kendisini yürütme engellenen yılında komut iken, korumalı alan DOM'una erişebilir anlamına gelir görünür; bu yüzden sadece parent -> iframe ancak iframe -> parent

İkinci soru: Belki yanlış anlama, ama isim olarak allow-top-navigation bu izin ziyade top.location.replace() gibi şeyler kullanmaları çerçeveli siteyi engeller ima eder.