Screen Size

In its essence, browser fingerprinting is a technique used to gather unique configurations and settings from a user’s device to identify and track them. Think of it as a digital fingerprint; no two are exactly alike, and while it may not be perfect, it offers a pretty reliable method of identifying users.

The Screen Size Technique

Among the numerous properties that can be utilized for browser fingerprinting, one stands out for its simplicity and effectiveness: screen size. This includes:

  1. The total screen size (in pixels)
  2. Available screen size (excluding interface features like taskbars)
  3. Browser window size

Using JavaScript, it’s easy to retrieve these values:

let screenWidth = window.screen.width;
let screenHeight = window.screen.height;
let availWidth = window.screen.availWidth;
let availHeight = window.screen.availHeight;
let innerWidth = window.innerWidth;
let innerHeight = window.innerHeight;

Combining these values creates a unique identifier for users, making it a valuable data point for fingerprinting.

Why is it Effective?

Most users might not change their screen size or resolution frequently. Even if they do, the combination of the browser window size combined with other data points such as the operating system data, and GPU fingerprints, can help lowering down possibilities and make the difference between a laptop and a desktop computer.

Bypass Techniques

As the functions to get those data points are limited, the main technique is to spoof the return of those functions and properties. This can be achieved simply with a JavaScript Proxy, but can be detected by countermeasures, and can also be achieved through custom browser patching.

Most of the time, those screen properties has to be consistent with a fingerprint database, and match with the OS and GPU details.