Show HN: Are you trackable? An irrevocable persistent browser cookie
ubercookie.robinlinus.com
ubercookie.robinlinus.com
Browsers need to start recognizing these as high-priority security vulnerabilities and make it a point to preempt them by design. Or they need to explicitly acknowledge that they cannot and start reducing their javascript attack surface to a simpler foundation more appropriate for interactive web pages.
Code running for a web page should have no idea of what size screen or aspect ratio it is displaying on - if a developer wants to draw pixel perfect graphics, they should be creating an app. Many better methods exist for distributing full-featured programs to run on one's machine - they generally involve auditing by a third party. Sandboxed execution is a nifty thing, but it's negligent to assert that it's infallible and eschew further security measures.
getClientRects is exactly the kind of thing that would be carelessly standardized by developers working for surveillance companies with little care for users' security. As I said, there is little reason for code supporting a web page to need that type of functionality. And if it "really" is needed, then the rendering specification needs to be based on a fully formalized algorithm (ala a networked game or Bitcoin) with every parameter quantified in bits. And yes, I realize how different from the current stack this would be.
Loading pixels can be used to allow cross-site communication, but that's not really what's under discussion here (and FWIW doesn't run afoul of the security model I expect from a browser)
FF49 on Ubuntu 16.04.
I get a different fingerprint on basically every page reload. Sometimes it repeats.
- Group1: Chrome, Chromium, Opera, ...
- Group2: Firefox, Tor Browser, ...
- Group3: on iOS every browser is based on Safari
- ...
Though with a backend you could track users switching among Chrome and Firefox by misusing WebRTC to leak the private IP ( https://www.perfect-privacy.com/webrtc-leaktest/ ). If the switching between browsers happens in a short period of time, the public + private IP is a pretty solid guess. If you observe and store this connection once you can always track the user switching among the two browsers.