7
votes

Limite 1 vote par adresse IP?

Ce que je veux vraiment, c'est de limiter 1 vote par personne, mais la meilleure chose à laquelle je peux penser est la limite 1 vote par adresse IP pour empêcher des utilisateurs / hackers malveillants de la trempe sévère avec le système de vote de mon entreprise. Je pensais utiliser une base de données pour suivre les adresses IP.

mise à jour: Désolé de ne pas être clair dans la première fois Aruond. Ce que je voulais savoir si la limitation de 1 vote par adresse IP était une bonne stratégie pour limiter 1 vote par personne. Fondamentalement, je voulais savoir si une adresse IP unique est à peu près égale à 1 personne. Les gens ont déjà mentionné que les proxy et les routeurs réutilisent les adresses IP de sorte que malheureusement, de nombreuses personnes peuvent utiliser la même adresse IP.

merci. Je pense que pour mon cas, cela sera préférable de ne pas limiter 1 vote par adresse IP.


6 commentaires

L'existence de serveurs proxy et d'adresses IP dynamiques gâte votre plan.


Mais c'est mieux que rien.


Et des Nats aussi. Et serveurs de mise en cache (parfois).


Pour empêcher les utilisateurs occasionnels de se faufiler dans des votes supplémentaires, c'est mieux que rien. Pour empêcher "les utilisateurs malveillants / hackers", c'est la même chose que rien.


Peut-être que vous pourriez redresser la question de savoir quelque chose comme. "Comment prévenir plusieurs votes en ligne du même utilisateur"?


@ Burnt1ce, puis-je suggérer de reformuler votre question en général, "comment puis-je limiter les gens à une question vote". Suggérez plutôt une solution, ce qui recommande beaucoup de gens.


7 Réponses :


1
votes

Oui, utilisez la base de données. Ne vous fiez pas à des cookies, ils peuvent être facilement supprimés.
IMO, jusqu'à présent, la limitation de vote basée sur IP est la meilleure option.


3 commentaires

-1 Pour le blocage basé sur IP: Malheureusement, il existe une quantité très non triviale de sites sur Internet qui ont de nombreux utilisateurs derrière une seule adresse IP.


Oui, mais le seul moyen de travail si vous voulez supprimer le vote tricherie.


@Andrejscainikovs: Dans tous les cas, nous avons eu une adresse IP comme une option complémentaire, les tricheurs ont toujours eu une offre inépuisable à utiliser. Donc - cela pourrait aider à mon enfant frère. C'est pas mal; Mais gardez à l'esprit que ce n'est qu'une mesure stopgap contre les fruits peu suspendus, pas une solution complète.



4
votes

Généralement, oui, ce que vous feriez est d'avoir une table de base de données pour les votes et de stocker simplement l'adresse IP +, puis lorsque vous insérez, faites une requête de DB pour voir si une entrée existe déjà avec l'adresse IP donnée.

La solution idéale serait de lier des votes aux comptes d'utilisateurs qui sont à leur tour liés à une présence plus concrète (comme une carte de crédit, un téléphone cellulaire ou une autre source d'identité moins facile à multiplier) .

Quelle est exactement la question que vous demandez?


0 commentaires

12
votes

Si vous utilisez des adresses IP, vous limiterez la plupart des entreprises à un seul vote, car ils achètent tout le trafic Internet sortant via un pare-feu ou un serveur proxy. Nous avons fait cela il y a quelques années et avons constaté que tout le trafic AOL provenait de seulement 5 adresses IP.


1 commentaires

Vous avez eu des problèmes avec AOL aussi bien heoi?



21
votes

Je suggérerais de ne pas aller avec l'approche IP. Lorsque j'ai examiné cela avant que certaines de vos grandes ISP, réutilisez IPS beaucoup (AOL ...), mais si vous utilisez des adresses IP, utilisez une base de données pour les suivre. Un moyen rapide de le faire est de faire une clé unique et d'attraper l'exception comme "déjà voté".

Une bonne chose à ajouter n'est pas de montrer à un utilisateur que leur vote n'a pas été compté, montrez simplement les résultats, ou de les remercier de vote. En ne donnant pas cette erreur spécifique, il est plus difficile et parfois non remarqué par vos utilisateurs de problèmes.


2 commentaires

Une autre chose que j'ai trouvée pour travailler bien ... Ajoutez un délai de minuterie croissant pour l'utilisateur s'ils ont un cookie. Bien sûr, ils pourraient le supprimer, mais encore une fois, ne pas montrer que vous faites quelque chose et que vous prenez lentement pour voter à chaque fois ralentirez les scripts de vote au point qu'ils ne fonctionnent pas vraiment. (Vous pouvez faire la même chose avec les adresses IP). Remarque: il s'agit également d'une bonne technique pour le nom d'utilisateur / mot de passe plutôt que sur des comptes de verrouillage.


Je pense pas automatiquement que les scripts de vote seront programmés même sur les données de cookie. Autre puis JavaScript (dans un navigateur), je n'ai vu aucune langue qui le fait par défaut. Ruby, PHP, Python semblent tous vous faire ajouter l'en-tête de la cookie à une demande manuellement.



0
votes

L'adresse IP a ses limites que nous l'avons notée, mais il existe de nombreuses autres caractéristiques qu'un navigateur a pour amorcer les électeurs malheureux. Browserid, par exemple, est différent pour presque tous les navigateurs. Vous pouvez utiliser une combinaison d'une adresse de navigateur et d'une adresse IP pour créer un identifiant unique.


0 commentaires

2
votes

La façon dont j'ai toujours fait, c'est concéder l'agent d'utilisateur et l'adresse IP dans un hachage de MD5 (dans certains cas, cela permettra aux personnes de voter de la même adresse IP, tant qu'elles utilisent différents navigateurs) et stocker En tant que "empreinte digitale" pour le vote de la base de données et ajoutez une clé unique à elle. Comme l'a dit Ipx Ares, de là, vous pouvez attraper l'exception clé en double, et vous devriez être bon.

Si vous vouliez permettre aux gens de voter une fois par jour, vous pouvez également ajouter le YMD à cette "empreinte digitale", ou d'autres variantes pour permettre x quantité à une heure ou x quantité par jour.


1 commentaires

Cela améliore un peu les choses, mais ne traite toujours pas du problème avec les utilisateurs de sociétés suffisamment bien. Dans une entreprise, il est probable que beaucoup de gens auront le même agent utilisateur et se situera derrière un pare-feu qui montre une adresse IP.



0
votes

Une autre façon d'éviter que la triche est de fournir un hachage d'utilisation de 1 fois dans la forme, puis vérifiez si cela est valide avant de compter le vote.

par exemple:

Lorsque vous créez le formulaire de vote, vous établissez un hasch aléatoire et stockez-le dans la base de données et mettez-le dans le formulaire en tant que champ caché . (peut souhaiter ajouter un champ de date à la base de données HASH pour vous permettre de nettoyer les hachages non utilisés)

Alors, lorsque vous recevez un vote POST Demande Vous pouvez vérifier si le hachage fourni est dans la base de données et le supprimez de la base de données afin qu'il ne puisse pas être utilisé à nouveau.


inconvénients:

Pourrait charger la base de données avec High Io si la page de vote a un trafic élevé.
Impossible de mettre en cache la page en tant que plan de plan HTML afin qu'il met plus de stress sur l'application Web.


0 commentaires