[whatwg] Need to define same-origin policy for WebIDL operations/getters/setters

Jonas Sicking jonas at sicking.cc
Sat Dec 15 17:33:01 PST 2012


An "easy" solution would be to just return null for .contentDocument
in the case of cross-origin iframes.

/ Jonas

On Sat, Dec 15, 2012 at 10:43 AM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
> Ccing whatwg because that's where the whole "origin" thing is currently
> defined.
>
> Consider this testcase:
>
> <iframe src="http://w3.org"></iframe><script>
> window.onload = function () {
>   try {
>     var doc = document.querySelector("iframe").contentDocument;
>     var list = document.getElementsByTagName.call(doc, "*");
>     alert(list.item(0).textContent);
>   } catch (e) {
>     alert(e);
>   }
> }</script>
>
> This throws in Safari, Chrome, Firefox, and Opera, all on the
> "getElementsByTagName.call" bit (except when loaded via file:// in Safari,
> in which case it actually lets you read all data from random website in the
> iframe).
>
> But I see nothing in the specs that requires this behavior, or indeed even
> allows it.  The security bits currently in the html spec talk about property
> access on cross-origin Document and Window, but in this case there is no
> property access happening on them per se...
>
> In any case, this needs to be defined somewhere.
>
> -Boris



More information about the whatwg mailing list