-
Notifications
You must be signed in to change notification settings - Fork 107
Open
Description
I was surprised to learn how brozzler's stealth JavaScript handles deviceMemory and hardwareConcurrency:
brozzler/brozzler/js-templates/stealth.js
Lines 30 to 35 in a665d49
| Object.defineProperty(navigator, 'deviceMemory', { | |
| get: () => getRandomInt(4, 32) | |
| }); | |
| Object.defineProperty(navigator, 'hardwareConcurrency', { | |
| get: () => getRandomInt(4, 32) | |
| }); |
Every call to either property returns a random value, so even simply [navigator.hardwareConcurrency, navigator.hardwareConcurrency] will have two different values in the array. Why is this? Why not pick a random number at the start and use that one? (Or even pick a common constant value like 4 or 8 so it's the same across page loads.)
Metadata
Metadata
Assignees
Labels
No labels