-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a TAO-bypass for Navigation timing #220
Comments
Could you be more specific on what you mean by "it makes no sense in NT's context", since TAO plays a role for workerStart, |
The reason "it makes no sense" is that TAO checks if the destination origin is OK with exposing timing, where for NT, the destination origin is also the one with access to the data. Does that make sense? |
Doesn't whatwg/html#7105 fix this? |
It does seem like in a redirect chain of A to B to C, A and B could opt-in to sharing their timing data. So C would get to know how these redirects impacted it. That's a slightly different model from TAO though so perhaps it needs its own design and header. |
So, the TAO bypass is important first for being able to expose Suggesting one of three options: RTAOa new header that's similar to TAO, which exposes this information and also in the future is an opt-in to get the navigation start time when cross-origin redirects are involved. This is perhaps the simplest, but less extensible
TASA new header specifying the scope of the timing allowed, with a list of values
This is similar to CORS, kind of like Access-Control-Allow-Methods TAPA parameterized header, in place of TAO, similar to Content-Security-Policy, like:
|
OK, so a more detailed proposal based on the above and the WG discussion, to get this kicked off:
For example:
Each directive represents a group of attributes in resource timing:
The following are always exposed, as they are either not TAO protected or anyway same-origin:
|
Speaking with @yoavweiss about this and reading through previous correspondence with security folks, I want to take a different approach. Instead of making a complex opt-in mechanism for TAO because it got too big, let's remove things from TAO and make the problem smaller. This is possible due to the new work on attribution reporting, which would allow us to report some of the more sensitive metrics in an aggregate, which would mitigate the exposing of user data and would still allow providers to understand their performance & regression in scale. Context:
Thus, we can divide the different metrics to four policies:
The nice thing about this is that it lives TAO as something very limited, and we don't have to find a new complex opt-in. When new metrics are proposed, we can see where they fit in the table, and deal with the issue of a new opt-in when and if it arises. |
Thanks @noamr for the great summary! I agree this is where we want to end up in the long term. Random comments:
Otherwise, I think we can split our path to get to that future to multiple chunks:
One risk with (3) would be implementation in some browsers but not others. I'm hoping that starting this conversation early can help us avoid that risk. I'd love opinions of RUM providers on this path (@nicjansma, @cliffcrocker), as well as other vendors (@bdekoz, @sefeng211, @achristensen07), and web-app-sec folks (@mikewest, @camillelamy). |
Thanks! I like the direction this proposal is going. In particular, removing |
I think this is only true for
Fixed |
Agree on |
I fixed it, though maybe with manual redirect mode |
It's not clear to me we want CORP to mean anything beyond "can be Spectre attacked". We had a long discussion about this elsewhere and I don't think we were able to come with a principled model around it. |
I'm actually of the same opinion, but wanted to keep that in mind in case that discussion resolves. The discussion was in this Google Doc, took me a while to find it. /cc @yoavweiss |
It's also at #240 and I vaguely recall some other GitHub discussion, but I cannot find it easily. |
encoded/decoded body size relate to the resource, not to the timing. Body size of cors-same-origin resources is anyway observable in service workers. This is part of w3c/resource-timing#220 (comment)
encoded/decoded body size relate to the resource, not to the timing. Body size of cors-same-origin resources is anyway observable in service workers. This is part of w3c/resource-timing#220 (comment)
The encoded/decoded body size relate to the resource, not to the timing. Tests: web-platform-tests/wpt#37884 & web-platform-tests/wpt#37257. This is part of w3c/resource-timing#220 (comment). Co-authored-by: Anne van Kesteren <[email protected]>
Navigation Timing is sharing many attribute definitions with Resource Timing, but doesn't use TAO, as it makes no sense in NT's context. We need to provide an internal flag that enables NT to reuse those definitions without requiring TAO. See w3c/navigation-timing#117
The text was updated successfully, but these errors were encountered: