Skip to content

Commit

Permalink
Copy NVS security and privacy considerations from explainer to spec
Browse files Browse the repository at this point in the history
Closes #287.
  • Loading branch information
kjmcnee authored Apr 15, 2024
1 parent 84320d4 commit 29cfa18
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
9 changes: 9 additions & 0 deletions no-vary-search.bs
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,12 @@ Two [=URLs=] |urlA| and |urlB| are <dfn export>equivalent modulo search variance
<td>`https://example.com/?a= &`
</table>
</div>

<h2 id="security-considerations">Security considerations</h2>
The main risk to be aware of is the impact of mismatched URLs. In particular, this could cause the user to see a response that was originally fetched from a URL different from the one displayed when they hovered a link, or the URL displayed in the URL bar.

However, since the impact is limited to query parameters, this does not cross the relevant security boundary, which is the [=origin=]. (Or perhaps just the [=url/host=], from [[URL#url-rendering-simplification|the perspective of security UI]].) Indeed, we have already given origins complete control over how they present the (URL, reponse body) pair, including on the client side via technology such as {{History/replaceState()|history.replaceState()}} or service workers.

<h2 id="privacy-considerations">Privacy considerations</h2>

This proposal is adjacent to the highly-privacy-relevant space of [[NAV-TRACKING-MITIGATIONS#terminology|navigational tracking]], which often uses query parameters to pass along user identifiers. However, we believe this proposal itself does not have privacy impacts. It does not interfere with [[NAV-TRACKING-MITIGATIONS#deployed-mitigations|existing navigational tracking mitigations]], or any known future ones being contemplated. Indeed, if a page were to encode user identifiers in its URL, the only ability this proposal gives is to *reduce* such user tracking by preventing server processing of such user IDs (since the server is bypassed in favor of the cache).
2 changes: 1 addition & 1 deletion no-vary-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,6 @@ We're hopeful a response header will suffice, instead of needing to go this rout

Security-wise, the main risk to be aware of is the impact of mismatched URLs. In particular, this could cause the user to see a response that was originally fetched from a URL different from the one displayed when they hovered a link, or the URL displayed in the URL bar.

However, since the impact is limited to query parameters, this does not cross the relevant security boundary, which is the origin. (Or perhaps just the host, from [the perspective of security UI](https://url.spec.whatwg.org/#url-rendering-simplification).) Indeed, we already given origins complete control over how they present the (URL, reponse body) pair, including on the client side via technology such `history.replaceState()` or service workers.
However, since the impact is limited to query parameters, this does not cross the relevant security boundary, which is the origin. (Or perhaps just the host, from [the perspective of security UI](https://url.spec.whatwg.org/#url-rendering-simplification).) Indeed, we have already given origins complete control over how they present the (URL, reponse body) pair, including on the client side via technology such as `history.replaceState()` or service workers.

For privacy, as [mentioned previously](#carrying-data-that-is-or-can-be-processed-by-client-side-script-only), this proposal is adjacent to the highly-privacy-relevant space of [navigational tracking](https://privacycg.github.io/nav-tracking-mitigations/#terminology), which often uses query parameters to pass along user identifiers. However, we believe this proposal itself does not have privacy impacts. It does not interfere with [existing navigational tracking mitigations](https://privacycg.github.io/nav-tracking-mitigations/#deployed-mitigations), or any known future ones being contemplated. Indeed, if a page were to encode user identifiers in its URL, the only ability this proposal gives is to _reduce_ such user tracking by preventing server processing of such user IDs (since the server is bypassed in favor of the cache).

0 comments on commit 29cfa18

Please sign in to comment.