Skip to content
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

Consider marking DefaultLocale as a fingerprinting vector #110

Open
littledan opened this issue Oct 18, 2016 · 19 comments
Open

Consider marking DefaultLocale as a fingerprinting vector #110

littledan opened this issue Oct 18, 2016 · 19 comments
Assignees
Labels
c: spec Component: spec editorial issues has consensus Has consensus from TC39-TG2 s: help wanted Status: help wanted; needs proposal champion Small Smaller change solvable in a Pull Request
Milestone

Comments

@littledan
Copy link
Member

HTML marks fingerprinting vectors with a big fingerprint icon. Should we do the same with DefaultLocale in ECMA 402? This applies to #106 even more.

(Side note: How does DefaultLocale relate to navigator.locale? Should they be specified somewhere to be equal? Are they in current browsers?)

cc @domenic @foolip @annevk

@zbraniecki
Copy link
Member

default time zone as well?

@littledan
Copy link
Member Author

@zbraniecki Yeah, that too; guess this affects ECMA 262 as well. @bterlson @caridy @allenwb How do you think we should go about this?

@caridy
Copy link
Contributor

caridy commented Oct 21, 2016

I don't know! This is mostly a question for @bterlson I think.

@bterlson
Copy link
Member

What is an explicit fingerprint vector in 262 (aside from implementation-specific details like stack depth, implementation bugs, etc.)?

Anyway I don't have much of an opinion here - find something that works for 402 and I can adopt for 262 as needed. If it seems like something that you want markup for in ecmarkup it can be added later.

@annevk
Copy link
Member

annevk commented Oct 22, 2016

Timezone maybe? Not sure it grabs global state elsewhere.

@domenic
Copy link
Member

domenic commented Oct 22, 2016

If the spec talks about stack depth then marking that up would indeed be nice. But yeah, that and some timezone stuff is all I can think of in 262.

@allenwb
Copy link
Member

allenwb commented Oct 22, 2016

It seems to me that the concept of "fingerprinting" and reasons for concern about it are things that are specific to the browser platform. Other platforms might have other concepts that they think are worthy of flagging as a concern.

The platform independent Ecma specifications don't seem like the right place to try to capture such an open-ended set of platform-specific concerns. To me, it makes most sense for each platform to address such concerns in that platform's specifications.

Does, the HTML spec have a section about integration of ECMA-262 and ECMA-402 into the browser platform? Does HTML require that its JavaScript implementations also support ECMA-402? Perhaps it should. Such a section also seems like the place where the relationship between DefaultLocale and navigator.local could be addressed.

More generally, some of the recent ECMA-402 discussion about tightening some of the current implementation flexibility might be better handled in such an ECMAScript hosting section of the the HTML spec. There is no reason at all why the web platform can't impose additional requirements upon "implementation-dependent" features of ECMA-402 (or ECMA-262). This has the advantage that it preserves implementation flexibility for other platforms that might have constraints or requirements that differ from the browser platform.

@caridy
Copy link
Contributor

caridy commented Aug 10, 2017

Probably a time-boxed topic for upcoming meetings to try to achieve consensus on this.

@sffc sffc added c: spec Component: spec editorial issues s: discuss Status: TG2 must discuss to move forward labels Mar 19, 2019
@leobalter
Copy link
Member

In the TC39 TG-2 (ECMA-402) Meeting of today we decided to add a paragraph (or similar) to Annex A saying that Implementation Dependent Behavior might be fingerprintable

@sffc sffc added has consensus Has consensus from TC39-TG2 s: help wanted Status: help wanted; needs proposal champion Small Smaller change solvable in a Pull Request and removed s: discuss Status: TG2 must discuss to move forward labels Feb 28, 2020
@sffc
Copy link
Contributor

sffc commented Feb 28, 2020

Fingerprintable behavior is the implementation-dependent stuff in Annex A plus the default locale.

@ryzokuken
Copy link
Member

Do we have a way to do this in ecmarkup yet? I don't think so. Should I just improvise in the meantime with a emu-note?

@littledan
Copy link
Member Author

You can use HTML and CSS in ecmarkup. See how "normative optional" works in ECMA-402. If it reaches more common use, we can look at upstreaming it into ecmarkup.

@annevk
Copy link
Member

annevk commented Jun 24, 2020

Note that on the platform side we now have a single point for features that can be used for fingerprinting and tracking to point to: https://infra.spec.whatwg.org/#privacy. Bikeshed also supports this.

@sffc sffc removed this from the ES 2021 milestone Mar 22, 2021
@sffc sffc added this to the ES 2022 milestone Mar 22, 2021
@sffc sffc modified the milestones: ES 2022, ES 2023 Jun 1, 2022
@sffc
Copy link
Contributor

sffc commented Sep 18, 2023

@ben-allen has been doing a lot of work in this space. The ILD behavior in the spec should be defined as derived from the user agent. See #588.

@sffc sffc assigned ben-allen and unassigned ryzokuken Sep 18, 2023
@sffc
Copy link
Contributor

sffc commented May 2, 2024

My suggestion here is to add a (normative note?) that says that DefaultLocale is "derived from" navigator.languages in environments that have such a thing. In Node.js, it might be derived from something else. I would be happy resolving this issue with a pull request of that nature.

Also, just to clarify:

Fingerprintable behavior is the implementation-dependent stuff in Annex A...

This part should be resolved by #588 / #780.

@annevk
Copy link
Member

annevk commented May 3, 2024

Why not make it a host hook if they are meant to be equal?

@ryzokuken
Copy link
Member

In Node.js, it might be derived from something else.

In Node.js IIRC, it's derived from the $LANG and $LC_* env vars.

@sffc
Copy link
Contributor

sffc commented May 3, 2024

Why not make it a host hook if they are meant to be equal?

They aren't equal. For example, I set my Accept-Language to ['eu', 'en-US'], but my DefaultLocale is en-US because Chrome does not support eu.

@annevk
Copy link
Member

annevk commented May 6, 2024

I see. I think a host hook would still be appropriate though and then hosts can determine whether they should be equal or not (and which can be overridden by end users and how).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: spec Component: spec editorial issues has consensus Has consensus from TC39-TG2 s: help wanted Status: help wanted; needs proposal champion Small Smaller change solvable in a Pull Request
Projects
Archived in project
Development

No branches or pull requests