Identifiant visiteur

Buchras omnis
Invité n'ayant pas de compte PHPfrance

21 août 2014, 14:45

Bonjour,
je cherche à identifier mes visiteurs.
j'ai donc pensé à récupérer puis concaténer $_SERVER['HTTP_USER_AGENT'] (système d'exploitation, navigateur) + Ville (fournie par mon hébergeur) + résolution écran (via javascript ... à l'étude) mais cette chaîne serait quand même plutôt longue ... l'idéal serait de lui attribuer un id pour pouvoir faire après : si id == xxxxxxx alors très fortes probabilités que le visiteur soit toto ...
mais je n'ai pas la moindre idée de comment transformer cette chaine en id ...
une piste serait la bienvenue
par avance merci pour votre aide

Mammouth du PHP | 1339 Messages

21 août 2014, 14:50

Hello,

Tu peux faire un md5() sur la chaine pour avoir un resultat de 32 caractères unique a la chaine en question ...

Teste ca ici : http://www.miraclesalad.com/webtools/md5.php

"Je suis une chaine très très longue" = 5bb6a1ba0f0b3b7741f5df02af83814d
Bon sinon tu me fais un message privé et on se fait un TeamViewer

stephane
Invité n'ayant pas de compte PHPfrance

21 août 2014, 15:04

Génial merci beaucoup !
pas de danger sinon, le hash est forcément unique ?

Mammouth du PHP | 1339 Messages

21 août 2014, 15:06

Unique est indéchifrable ...
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
xTG
ViPHP | 7331 Messages

21 août 2014, 15:31

Génial merci beaucoup !
pas de danger sinon, le hash est forcément unique ?
Le MD5 est un algorithme de hash qui n'est pas bidirectionnel.
Autrement dit tu peux avoir deux chaînes différentes qui génèrent le même hash md5.

Si tu veux quelque chose de réellement d'unique il faut voir du côté du cryptage.

Mais dans ton cas je ne vois pas pourquoi un simple hash md5 ne suffirait pas.

stephane
Invité n'ayant pas de compte PHPfrance

22 août 2014, 10:35

D'accord merci.
Et pour augmenter la probabilité d’attraper le bon user, y-a-t-il d'autres infos que je pourrai glaner en plus de la ville, de la résolution et du user-agent ... je n'ai pas énormément de visiteurs et cela devrait suffire mais si je pouvais cibler encore plus, ce serait pas mal quand même ...

Mammouth du PHP | 1339 Messages

22 août 2014, 10:41

Je pensais a un truc tout bete ...
Prendre l'iP du visiteur ?
Un truc encore plus bete ... Mettre un cookie dans l'appareil de l'utilisateur ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

stephane
Invité n'ayant pas de compte PHPfrance

22 août 2014, 11:24

oui mais l'ip change et nombreux sont ceux qui mettent vider les cookies à la fermeture du navigateur. je cherche un truc plus fiable genre http://monip.fr/mon-ip
après le croustillant ça va être de réussir à passer tout ce javascript au serveur :) mais ... sans cookies ...

stephane
Invité n'ayant pas de compte PHPfrance

22 août 2014, 11:30

enfin au serveur analytics qui a son propre script

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 août 2014, 14:48

La façon la plus fiable d'identifier un visiteur, c'est de permettre à celui-ci de se créer un compte et de lui demander de s'authentifier. La gestion des ids se fait alors simplement en base et tu reconnais l'utilisateur à l'aide d'un login et d'un mot de passe (histoire de pouvoir quand même jouer avec du md5 ou du sha :))

Sans cela, il suffit que deux utilisateurs se connectent de la même société avec un proxy pour que tu ne puisses en rien les distinguer l'un de l'autre...

Du coup la question à se poser c'est : quel est le besoin qui te pousse à devoir reconnaître tes visiteurs ? :)

(et effectivement, il parait qu'il y a des gens qui suppriment les cookies ou désactivent le javascript, mais s'ils le font, à eux également d'assumer le fait qu'ils passent à côté de bon nombre de fonctionnalités en faisant cela ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

stephane
Invité n'ayant pas de compte PHPfrance

24 août 2014, 11:33

L'objectif est de pouvoir en ban certains mais ça y est je crois que ça roule et j'ai réussi à tout rebalancer à l'analytics (pas google .. j'évite autant que possible google ...).
Donc pour résumer hash sur pays - ville - version ipv4/v6- user-agent - FAI (host épuré) - langues navigateur - définition (résolution) + latitude/longitude (car malheureusement mon hébergeur n'arrive pas toujours à me fournir la ville).
Avec ça je pense que les chances de me tromper seront vraiment faibles.

ps : merci d'avoir changé le sujet du topic ... petite confusion avec le code de confirmation :)

ViPHP
ViPHP | 1996 Messages

25 août 2014, 08:19

Unique est indéchifrable ...
Euh... non! Malheureusement, il existe depuis près de 4 ans des bases de données md5 qui circule sur le net. (voir http://md5.rednoize.com/)
Pour plus de sécurité, il faut utiliser sha256() à la place (voir petite fonction que j'ai créé pour cela) car même sha1() devient obsolète.
function sha256($string = false) {
	return (!is_string($string) or empty($string)) ? false : hash('sha256',$string);
}
J'utilise pour compléter la méthode de grain de sable = alternances de caractères à des positions précises uniquement connu du script.
Avec cela tu seras tranquille 3 ans (au mieux).
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
xTG
ViPHP | 7331 Messages

25 août 2014, 08:37

Unique est indéchifrable ...
Euh... non! Malheureusement, il existe depuis près de 4 ans des bases de données md5 qui circule sur le net. (voir http://md5.rednoize.com/)
Différence entre "est" et "et" je pense. ;)

ViPHP
ViPHP | 1996 Messages

25 août 2014, 09:10

Bah vi ! (encore lu trop vite.. :oops: )

J'en profite pour mettre à jour mes connaissances.
J'ai vu que sha en version 3 était sortie en 2012 via le NIST. J'utilise perso la version 2 en version 256 (sha256) car je pense que 64 caractères suffisent pour mes petits besoins.
Savez-vous si PHP envisage de mettre sha-3 en algorithme prochainement ? J'ai rien lu de tel sur le net.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr