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.
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)
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.
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.