简体   繁体   中英

Is it possible to Detect Real OS name when the User-Agent header is modified

Is there anyway except to find the real OS name of the user?

I need to know if my client are changing their OS name in user-agent header.

No.

Think of the problem this way. There are two remote parties communicating with each other over a single channel. One party sends a message "My name is Peter". Now there is no way the other party to verify the truthfulness of this information unless another authoritarian service which is capable of verifying the details of the parties via an external means is making it mandatory for the first two parties to register themselves.

Unfortunately the Internet protocols are designed to operate in the client-server realm. This means there are no mandatory authoritarian parties which regulate any given communication happening between two individual parties.

The only savior of information verification is cryptography. There two it cannot be applied to all sorts of verifications. Cryptography can be used to overcome problems such as Two Generals Paradox - that is to verify the information received from one party is not intercepted and modified during the course of communication. But there is no feasible solution in the current Internet protocol design to verify information as fundamental as those originated from a source which is not in a domain where the destination has any control over.

If the client runs Javascript, and you're willing to live with somewhat unreliable results, you can detect their browser's features to make a fairly well-informed guess, and in some cases infer the OS (eg if you detect IE or Edge, there's a good chance they're running Windows). However, it's still subject to being spoofed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM