Doug Wolfgram
Doug Wolfgram

Reputation: 2126

How to get a unique PC ID from a web browser

I have a web app that will be running n several specific target machines. I could have the user select which machine he is on when he logs in, but that is prone to error. Is there a way I can get some unique ID from each PC, store those in a database on my server and then when someone logs in from a particular machine, identify that machine? I thought of IP address but those might change as well due to the nature of our deployment. But is is critical that I know which machine the system is running on.

Note: I am not trying to determine the machine code of a web user's machine as that would be a privacy violation. I KNOW my machines so I was wanting to tie them to the database somehow. This also acts as security for me as I can reject logins from unknown machines.

Thanks for any ideas. I am running Apache with Code Igniter 3 and Centos 6.5

Upvotes: 6

Views: 29307

Answers (5)

Dan Bray
Dan Bray

Reputation: 7822

You could use this as a computer ID:

$computerId = $_SERVER['HTTP_USER_AGENT'].$_SERVER['LOCAL_ADDR'].$_SERVER['LOCAL_PORT'].$_SERVER['REMOTE_ADDR'];

It's not completely fool proof, as the values of $_SERVER can be faked, however it will still add an extra layer of security that does not rely on cookies.

Upvotes: 3

Guns
Guns

Reputation: 2728

You can even try getting the MAC Address:

Use this class (https://github.com/BlakeGardner/php-mac-address)

This is a PHP class for MAC address manipulation on top of Unix, Linux and Mac OS X operating systems. it was primarily written to help with spoofing for wireless security audits.

Upvotes: 0

JB567
JB567

Reputation: 1

I would either

use a value like bin2hex(openssl_random_pseudo_bytes(512)) and set it as a cookie and then check for the cookie

or

use IP based logging like (127.0.0.1) has typed hello

or

MAC Addresses (php libraries for it)

Upvotes: 0

Matt Johnson-Pint
Matt Johnson-Pint

Reputation: 241450

The first time a user hits your site, identify their machine by IP address. Then set a persistent cookie with a unique identifier of your choosing.

The next time they come to the site, you can identify them by the unique identifier cookie that you set previously.

Upvotes: 1

Robby Cornelissen
Robby Cornelissen

Reputation: 97120

It's not possible without a client component, browser plugin or something similar. The closest alternatives are:

  • using cookies;
  • using client certificates;
  • using browser fingerprinting;

each with their own disadvantages.

Upvotes: 5

Related Questions