WebKit / standards-positions

WebKit's positions on emerging web specifications
https://webkit.org/standards-positions/
240 stars 19 forks source link

Realms Initialization Control #389

Open weizman opened 2 weeks ago

weizman commented 2 weeks ago

WebKittens

No response

Title of the proposal

Realms Initialization Control

URL to the spec

https://github.com/WICG/Realms-Initialization-Control

URL to the spec's repository

https://github.com/WICG/Realms-Initialization-Control

Issue Tracker URL

No response

Explainer URL

No response

TAG Design Review URL

https://github.com/w3ctag/design-reviews/issues/985

Mozilla standards-positions issue URL

https://github.com/mozilla/standards-positions/issues/1062

WebKit Bugzilla URL

No response

Radar URL

No response

Description

Initialization of same origin realms in an application should be under that application's control.

This proposal describes an opt-in capability to set a script to be loaded first, every time a same origin realm with synchronous access to the main execution environment of the application is created.

The location of the script can be relative or absolute. Secure connection is required. The proposed method for setting the script is a Content Security Policy directive as follows: Content-Security-Policy: "realm-init: /scripts/on-new-same-origin-realm.js" so that the on-new-same-origin-realm.js script will execute before any other JavaScript code executes in the top realm execution environment, as well as any other child realm that matches its origin.

annevk commented 2 weeks ago

It seems the motivation here in part is security, but you cannot prevent code running in your process from accessing the process memory. See Meltdown and Spectre.

There's also a lot of overlap with shadow realms in terms of functionality offered that's not really addressed by the README.

weizman commented 2 days ago

Hi @annevk, thanks for your feedback, sorry for taking a while, we spent most of that time to circle with experts to address your concerns the best way possible, by updating the explainer to refer to both ShadowRealms and Confidentiality (focusing on side channeling attacks such as "Meltdown and Spectre").

Hope this clarifies things, would love to provide more input however needed.