2011-07-13 33 views
5

Bạn có thể giúp tôi hiểu việc triển khai Chrome các thuộc tính hộp cát iframe HTML5 cho phép cùng một nguồn gốc và cho phép điều hướng trên cùng không?Các thuộc tính hộp cát iframe HTML5 có vấn đề

Câu hỏi đầu tiên:

Ví dụ khi tôi kiểm tra cho phép-cùng-có nguồn gốc Tôi làm:

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

Nội dung file.html:

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

và đó chỉ là một công việc khi tôi có thuộc tính bổ sung được gọi là allow-scripts nên tôi có sandbox = "allow-scripts allow-same-origin". Một mình cho phép cùng một nguồn gốc không hoạt động và một mình cho phép-script hoạt động tuyệt vời (script chạy nhưng không liên quan đến API SOP, nó liên quan đến tiêu chuẩn HTML5).

Tiêu chuẩn HTML5 nói:

"Thứ nhất, nó có thể được sử dụng để cho phép nội dung từ cùng một trang web để được sandboxed để vô hiệu hóa kịch bản, trong khi vẫn cho phép truy cập vào DOM của nội dung sandbox."

Tôi có hiểu lầm rằng việc triển khai Chrome không đúng?

Câu hỏi thứ hai:

Tiêu chuẩn HTML5 nói về phép-top-navigation:

"Thứ hai, nó có thể được sử dụng để nhúng nội dung từ một trang web của bên thứ ba trong hộp cát, để ngăn chặn trang web đó từ việc mở các cửa sổ bật lên, v.v., mà không ngăn trang nhúng truyền đạt lại trang gốc của nó, sử dụng các API cơ sở dữ liệu để lưu trữ dữ liệu, v.v ... "

Cửa sổ bật lên của tôi trong Chrome không bị chặn. Làm thế nào tôi có thể chặn chúng? Tôi chỉ sử dụng cho phép điều hướng trên cùng.

Chúc mừng, David

Trả lời

0

Đối với câu hỏi đầu tiên: Có vẻ điều này có nghĩa rằng trang mẹ vẫn có thể có quyền truy cập vào DOM của sandboxed , trong khi kịch bản trong bản thân bị chặn khỏi án tử hình; vì vậy nó chỉ parent -> iframe nhưng không iframe -> parent

Câu hỏi thứ hai: Có lẽ tôi là sự hiểu lầm, nhưng như tên allow-top-navigation ngụ ý này sẽ phép hơn là chặn các trang web đóng khung từ việc sử dụng những thứ như top.location.replace().

Các vấn đề liên quan