views:

41

answers:

3

What I am looking for is way / design to track a user / site visitor without the need for cookies or JavaScript as about 5% of users have one or both of these turned off.

What I would like to achieve is a unique reference for the user which can be captured server side in code.

I was thinking machine CPU / Motherboard ID but this information is hidden.

What information could you use / combine to create a unique hash.

I also need that ID to work across different sessions. Or maybe if the information is unique enough a way to do cookies/cookie type things across different browsers.

+1  A: 

You could put a code in the url, this is how cookieless sessions used to work (maybe still do).

UPDATE: taking comment on, depending on your application and number of users you could consider giving each user a dedicated sub domain, or if subdomains are too tricky build it as part of their url. This depends on whether they need to login into the site.

You could look at doing something with client ip addresses but this would not work for everyone.

dove
Sorry, just added that it needs to work over diffrent sessions, so query string is out.
TheAlbear
Client IP will only work if all IPs are fixed and unique. This may apply to your application but judging by your question I imagine it doesn't. If you can get the users to sign in you don't have a problem. To be honest, if someone has turned off cookies and JS it's likely that they don't want to be recognised by your site anyway.
Mark Chorley
@Mark completely with you, as i said this would not work for everyone. Even two people who used the same machine or from a proxied access.
dove
+1  A: 

Are you sure the users really have Cookies switched off? It could be that users have persistent cookies switched off (the ones that write a file to the user's hard drive) and still have browser session cookies switched on. Browser Session cookies live in memory and disappear when the user closes their web browser, but normally this is enough for server-side Session State to work properly.

In nearly all cases where clients have cookies disabled, it's always persistent cookies only. The in-memory ones are still enabled and work fine, you can still track users, but only for as long as the browser remains open, this might be enough for you I don't know.


Update: I just noticed you said this needs to persist across sessions (as in user closing browser down and going back to site later). Have you looked at HTML5 storage options (LocalStorage in particular), it's a simple Key/Value store, and it's reasonably supported across browsers even versions of Internet Explorer.

Sunday Ironfoot
A: 

After some more research aided by Rup and the ret of the comments on here, it has become apparent that there isn't a simple way to track a user across your site without cookies, But its not impossible.

Looks like the only way to truly achieve this is via browser finger printing, using all the information supplied back to the server to make a unique finger print of the users browser, this seams to work for about 95% about the same as cookies.

Browser finger printing at the moment seams like a workable approach but I feel there might be quite a large backlash from the general public / privacy groups if you where to go down this route.

For the moment it seems we are stuck with cookies.

TheAlbear