w3c / w3c/resource-timing

Consider removing wildcard option of the `Timing-Allow-Origin` header to prevent accidental application state leakage

Open
#223 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

privacy-needs-resolution
Dominant language
Bikeshed
Stars
135
Forks
40
PR merge metrics
No merged PRs in 30d

Description

Wide usage of Timing-Allow-Origin: * (as discussed in #222) combined with the amount of detailed information that this API exposes about third party requests creates multiple opportunities for web applications to leak their state (e.g. if user is logged in).

We believe that having detailed information about the response body size, headers size (transferSize - encodedBodySize) and redirects being shared with third-party websites creates a lot of unwanted opportunity for web applications to accidentally leak information about their state.
Additionally, all resources that where returning Timing-Allow-Origin: * header since level 1 of this API are getting seamlessly (w/o additional opt in) updated to level 2 which will expose much more information about them to third party websites. While developers that originally added those headers may have considered the risks of doing so, new data exposed in level 2 was probably not taken into account.

Mitigations that we proposed in #222 should also cover the above issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with issue #222 and the Resource Timing specification's handling of the Timing-Allow-Origin wildcard. Review the proposed mitigations there, assess how removing or restricting the wildcard affects existing level 1 resources and level 2 data exposure, and define the specification changes and compatibility criteria needed for the issue to be complete.

Written by the indexing model from the issue text.

Assessment

Domain
security, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.