Maciej Stachowiak schrieb:

On Feb 12, 2010, at 11:54 PM, Adam Barth wrote:

On Fri, Feb 12, 2010 at 11:48 PM, Michal Zalewski <lcam...@coredump.cx> wrote:
Can a frame in @sandbox ever navigation the top-level frame?  If not,
that would make it hard to use @sandbox to contain advertisements,
which want to navigate |top| when the user clicks on the ad.

Ads would want to be able to do that, but user-controlled gadgets
shouldn't. I suppose the top-level page should be able to specify, and
the entire @sandbox chain would need to be traversed to make the call
(so that @sandbox included on example.com that is prohibited from
messing with the top-level frame can't just create a nested frame
without the restriction, and bypass the check).

I assume that chain-style checking is already a part of the spec, as
we obviously don't want other restrictions to be removed in a similar
manner?

Yes, the sandbox restrictions collect in subframes.

Perhaps we want an "allow-frame-busting" directive?  In the
implementation we have an "allow-navigation" bit that covers
navigation |top| as well as window.open, etc.  Maybe we want a more
general directive that twiddles this bit?

Some may want to have a directive that allows only opening new windows and not navigating the top level. This is the policy Caja tries to enforce by default for instance. For ads I could imagine wanting only top-level navigation and not window opening. So maybe this should be two flags.

An "allow-navigation" directive should IMO be ok. Given that a navigation element is allowed in the context, the user experience should actually not differ whether it is clicked in a sandboxed context or not.

Some off-topic thoughts about this:

Most non-academic websites apply target="_blank" on all external links. In order to allow a consistent user experience, it might be worth to encourage UAs to offer the following user settings:

1. "Open new tabs rather than windows"
This should not only apply to windows opened with target="_blank" (as it is already possible e.g. in Firefox), but also to the ones opened by window.open().

2. "Always open links to other domains in a new tab" (resp. window, if the above option is not set) I would even encourage to set this as the default, as it is a de-facto standard at least in commercial and community websites.

Reply via email to