|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : décembre 2003 Messages : 415 ![]() |
Bonjour,
Bon ... je reconnais que mon titre de sujet n'est pas top et peut paraître un peu mal-honnête à priori. Soyons clair : il n'en est point Je souhaite en fait mettre en place sur un site un système de "votes". Un utilisateur (un compte) n'a le droit chaque jour de voter pour un même produit qu'une seule et unique fois. Afin d'éviter toute triche (une personne qui créerait plusieurs comptes fictifs pour voter pour un produit qu'il souhaite "faire gagner") je souhaite savoir s'il y a moyen d'identifier (ou de générer un identifiant) un ordinateur client pour m'assurer ainsi que même avec différents compte, une personne ne pourra voter plusieurs fois pour un même produit. Le problème n'est clairement pas la gestion des votes etc ici ... je cherche à savoir comment identifier le PC client. Nous sommes d'accord que rien n'est inviolable. Et qu'une personne maîtrisant à un plus ou moins bon degrés les techno du web et outils disponibles sur la toile, pourra contourner le système. Mais ce pourcentage de population sur la cible du site reste évalué à minime. Donc tant pis. Soyons clair, je ne veux pas simplement me baser sur l'@ IP. Ceci pour notamment le cas des petites entreprises ou le réseau est connecté derrière une box. Il faut que, dans l'entreprise si tous les employés ont un compte, ils puissent tous éventuellement voter pour le même produit. Un système par cookie n'est pas suffisant. Idéalement, je souhaiterais que depuis un même PC si l'utilisateur vote une fois via IE ... il ne pourra pas voter avec un autre compte via Firefox. Ou tout simplement après suppression des cookies. Quelles options me reste-t-il ? Je suis preneur d'à peu près tout type de solution basé sur l'HTML/PHP et Javascript (pas de Flash) Merci à quiconque s'intéressera à mon problème.
__________________
"La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement... |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 246 ![]() |
Salut,
en plus de tes verifs (cookies, ip, etc..) tu peux ajoute une table qui liste les ids utilisateurs, et les id produits pour lesquels ils ont vote.
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Quelle que soit la solution que tu vas prendre, le seul moyen sûr à 100% est de forcer l'utilisateur à s'authentifier. C'est en revanche très pénible pour lui. Pense à bien refuser la création de compte avec des faux emails (comme ceux de yopmail).
Pense aussi à mettre un capcha, y'aura toujours des gogos pour faire des robots En d'autres-termes, il est pratiquement impossible d'identifier le navigateur du client (que ce soit par IP ou par cookie). C'est l'utilisateur que tu dois identifier.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Inscription : décembre 2003 Messages : 415 ![]() |
Bonjour,
... Je pense que j'ai été mal compris. Nous sommes d'accord que sur le principe rien est inviolable. Je cherche juste à bloquer la majorité des utilisateurs + les petits bidouilleurs. Il existera toujours un moyen de contourner le système. Doksuri > comme je l'ai dit, je ne cherche pas à savoir comment mettre en place le système de votes pour vérifier qu'un utilisateur ne votera qu'une seule fois par jour. Là n'est pas mon soucis ... (je redécris ci-après ce que je cherche en fait) Benjamin > Citation:
Citation:
1- non exhaustif ; 2- insatisfaisant dans le sens où du moment que tu possède une adresse GMail ... tu possèdes une infinité d'adresses mails ... là encore tu me diras on peut faire un filtre dessus etc etc ... Mais deux vrais adresses ne sont pas compliquer à trouver non plus ; Pour en revenir à ma question initiale, ce que je cherche à faire c'est qu'un PC ne puisse voter qu'une seule et unique fois par jour. Ma question est donc "comment réussir à identifier un PC ?" Je cherche une solution HTML / PHP / Javascript. Je sais que c'est éventuellement faisable en Java ... mais je ne souhaite pas m'en servir. En Java (une applet) j'ai la possibilité de récupérer l'@ IP locale du PC ... à partir de là je peux générer un hash IP Publique / IP locale qui me permettra d'identifier le PC. Cette sécurité est aisée à contourner pour toute personne capable de configurer soit même son réseau ... mais comme je l'ai dit, ce n'est pas la cible du site, donc cette sécurité serait jugée comme acceptable (et puis on peut imaginer derrière prendre en compte le nom du PC ... et tout autre information disponible). Donc ma question est, quelles méthodes d'identification du PC, comme je vous ai présenté avec l’applet Java, existe-t-il en PHP/Javascript (comprendre pas de Flash, pas de Java ....) et autre que Cookie et simplement REMOTE_HOST_ADRESS de l'en-tête HTTP ? Quoiqu'il en soit, merci de m'avoir répondu.
__________________
"La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement... |
||
|
|
00
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Code :
Donc ma question est, quelles méthodes d'identification du PC, comme je vous ai présenté avec l’applet Java, existe-t-il en PHP/Javascript (comprendre pas de Flash, pas de Java ....) et autre que Cookie et simplement REMOTE_HOST_ADRESS de l'en-tête HTTP ?
En revanche une vérification par cookie est assez aisée à fabriquer et relativement sécurisée si additionnée avec la vérification du membre. Tu pourrais aussi t'orienter vers les certificats signés et HTTPS mais c'est une technologie que je ne maitrise pas et qui n'est pas gratuite (le certificat est payant, regarde par exemple sur http://www.verisign.com/).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 | ||||
|
Membre actif
![]() Inscription : décembre 2003 Messages : 415 ![]() |
Citation:
Citation:
Je vais tout de même faire une ou deux petites recherches. Citation:
Citation:
Dans le fond, mon sujet et plus une question ouverte : comment sécuriser au mieux (partant du principe que rien est inviolable) un tel système de vote à base de HTML / PHP / JS ? - @IP publique uniquement => insuffisant (bloque le réseau complet d'une maison et non d'un ordinateur) - Cookie simple => insuffisant : changement de navigateur et/ou nettoyage des cookie font sauter la protection. - Récupération de l'@IP locale de la machine => ok ... mais semble impossible en JS, à explorer ... - Certificats => contrainte de paiement non admissible dans mon cas - Autre méthode ? Merci pour votre investissement,
__________________
"La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement... |
||||
|
|
00
|
|
|
#7 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
De toute façon soyons honnêtes, personne ne va aller "pirater" ton système de vote pour le plaisir.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : décembre 2007 Messages : 181 ![]() |
Bonjour,
Tu as dors et déjà listé toi même, je pense, toutes les possibilités offertes par les technos de ton projets. Ce que tu peux chercher derrière ce sont des méthodes de blocage post-bypass (ouahouh le beau néologisme) Exemple: tu peux verifier qu'un type qui revote le lendemain ou se reconnecte dans la journée a toujours son cookie en place. Tu peux sinon faire des tests croisés, coupler @ip et navigateur, etc. Ou sinon j'y pense en écrivant cette réponse, c'est moche mais: FBconnect. Tous les votant doivent avoir FB pour voter. ça peut limiter un peu la casse, et ça donne une meilleur visibilité de ton site au niveau social ranking. Mais bon... Facebook quoi ... |
|
|
00
|
|
|
#9 | |||
|
Membre actif
![]() Inscription : décembre 2003 Messages : 415 ![]() |
Je viens de voir qu'au sein de Javascript il existe un "wrapper" Java autorisant des appels à des méthodes statiques de package Java.
Il existe notamment, dans le package "net" dans la classe "InetAddress" la méthode "getLocalHost()". En test en direct dans mon navigateur, cela ne semble pas pleinement fonctionner (je ne récupère rien). Peut-être une piste à explorer ? Alors oui, je sais j'ai dit "pas de Java" ... mais je ne savais pas qu'il était possible de faire des appels Java depuis JS ... ce qui pour moi change la donne (pas de création d'applet, invisible pour l'utilisateur ...). Je vais voir ce qu'il est donc faisable avec ça. Citation:
Citation:
Citation:
Merci pour ton intervention cela dit Et même merci à vous deux ... Je vous tiens au courant pour mon test Javascript.
__________________
"La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement... |
|||
|
|
00
|
|
|
#10 | |
|
Membre habitué
![]() Inscription : décembre 2007 Messages : 181 ![]() |
Petite parenthèse hors sujet:
Citation:
Je ne connais pas l'objet de ton site, mais très clairement si tu veux faire les choses "bien" joue la carte du social à fond, ne serait-ce que sur cet aspect là ! Au pire externalise ton vote sur un compte FB du site. Je ne suis pas un FB Addict, mais il parait admis par la communauté e-marketeuse, qu'ajourd'hui les concept de FB et de webreput, sont incontournables. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com