Chuyển đến nội dung

Trang này chưa có bằng ngôn ngữ của bạn. Bạn đang đọc bản tiếng Anh.

Glossary

navigator.platform

It has been on the way out for years and is still read on the first screen of almost every check. What matters today is not what it says but whether everything around it says the same.

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.

Máy của bạn, ngay lúc này

Platform
đang đo trên máy của bạn
User agent
đang đo trên máy của bạn
Time zone
đang đo trên máy của bạn

Được đọc trong trình duyệt của bạn và hiển thị tại đây. Không có gì được gửi đi.

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 hintnavigator.platform
WindowsWin32
macOSMacIntel
LinuxLinux x86_64
AndroidLinux 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.