Deze pagina is nog niet in uw taal. U leest de Engelse tekst.
Glossary
navigator.platform
navigator.platform is a short string in which a browser names the operating system family it runs on.
What this string can say
Only a handful of values are common, and one of them covers every Mac ever made. A value outside the handful is a mark before anything else is read.
MacIntel
Every Mac reports this, the Apple Silicon ones included.
Win32
Every 64 bit Windows reports this, and the name is a leftover from an older era that nobody dares change.
Linux x86_64
A desktop Linux naming its architecture inside the string itself.
Linux armv8l
What Chrome on Android reports, on phones and on tablets alike.
Your platform right now
These three are read in your browser on this page, and any check reads all three of them together.
Uw apparaat, op dit moment
- Platform
- meten op uw apparaat
- User agent
- meten op uw apparaat
- Time zone
- meten op uw apparaat
Gelezen in uw browser en hier getoond. Er wordt niets verzonden.
Why one string has to agree
The string is read next to the client hint that names the same system, and the pairing is fixed.
A profile picks a class of machine, and the string arrives with it rather than being chosen apart from it.
| Platform hint | navigator.platform |
|---|---|
| Windows | Win32 |
| macOS | MacIntel |
| Linux | Linux x86_64 |
| Android | Linux armv8l |
Every place answers the same
A page does not have to ask the document in front of you: it can open a frame or start a worker and ask there instead.
A Windows profile measured on a Mac answers Win32 in the page, in a frame and in a worker, and a difference between the three would prove tampering better than the value itself ever could.
The page
The reading a site takes first, and the only one most checks bother with.
A hidden frame
A fresh window whose values have to be the same ones, without any script setting them.
A worker
A thread with no page at all, where a value that comes from the engine still holds and a value set by a script does not.
Often confused with
The platform hint
The newer field names the same system in a friendlier form, such as Windows or macOS, and a check reads both in one pass.
The system token in the user agent
The same fact written into the long line, which is why a site compares the two.
Architecture
This string says nothing dependable about the chip, and MacIntel stays MacIntel on Apple Silicon.
How to check your own
The panel above shows what the browser you are reading this in answers, and nothing leaves the page.
Inside a profile, the fingerprint self-test asks the page, a frame and a worker separately, so a value that leaks in any one of them shows up red.
What this does not do
- It is not a free text field. The string belongs to the device template you pick, and hand editing is offered for time zone, language, screen, card, cores and memory.
- It does not describe the chip. A Mac reports the same string whatever is inside it, so the value tells a site the family and nothing beyond that, and the chip is named elsewhere.
- Emptying it is not protection. A browser with no platform at all is rarer than any platform there is, and the absence becomes the identifying trait.
- It does not carry the rest of the system. Fonts, cards and behaviour are read separately, and a matching string does not move any of them an inch.
Check it
Everything above comes from a file you can open.
- The self-test asks the page, a frame and a worker
- apps/desktop/src/lib/fpAudit.js
- The platform hint and this string are a fixed pair
- apps/desktop/test/fingerprint-consistency.js
- A frame answers what the page answers
- apps/desktop/test/fingerprint-realms.js
- The measured run of the shipping engine
- engine/приёмка-отчёт.json
Questions
- Is navigator.platform deprecated?
- It is, and it is still read. The code that reads it is everywhere, so a value browsers are told not to rely on sits on the first screen of every check.
- Why does a Mac say MacIntel?
- Because every Mac does, Apple Silicon included. A Mac naming something else there would be the only Mac in the world doing so, which is the opposite of blending in.
- Can a profile on a Mac report Win32?
- Yes, by picking the Windows class of machine. The screen, the card, the cores, the fonts and the hints move with it, because a lone string would contradict all of them.
- What does a phone report?
- Linux armv8l, on a phone and on a tablet alike. What separates the two is the mobile flag and the long line, not this string, and a tablet that calls itself mobile contradicts itself in the first header it sends.
- Does a worker see the same value?
- It has to. The value comes from the engine, so every frame and every thread inherits it instead of answering for itself, and that is the difference a page tests when it starts a worker.
See what your own profile answers
The self-test runs inside a profile and shows all 29 measurements, green and red alike.