2009-03-04 9 views
1

J'ai écrit un forum de discussion en tant que premier projet ASP.NET. Cela semble bien fonctionner jusqu'à présent. Cependant, l'une des caractéristiques que j'ai est que chaque message a une note de spam. C'est simplement le nombre de fois que les spectateurs ont marqué le message comme spam divisé par le nombre total de fois que le message a été vu. L'idée est de permettre aux utilisateurs d'ignorer les messages avec des notes de spam élevées s'ils choisissent de le faire.Fournir une fonctionnalité seulement une fois à chaque visiteur unique

Cependant, tout le système peut être déjoué par un spammeur simplement en visualisant son propre message et en le rafraîchissant plusieurs fois, ce qui augmentera le nombre de fois que le message a été vu. Il peut également être déjoué par quelqu'un qui marque le message comme spam plusieurs fois de suite. J'ai besoin d'un moyen de déterminer si un visiteur particulier a déjà vu un message particulier, et un moyen de déterminer si un utilisateur particulier a déjà marqué un message particulier comme spam.

Je ne veux pas d'inscription - Je veux que tout le monde puisse voir ou poster des messages. Deux idées que j'ai envisagées sont la mise en place d'un cookie lorsque le visiteur arrive sur le site afin que je puisse les suivre, ou créer une nouvelle table de données qui enregistre les adresses IP des utilisateurs lorsqu'ils voient un message ou le marquent comme spam. Quelqu'un d'autre peut-il penser à un meilleur moyen? Est-ce que .NET a des fonctionnalités intégrées qui pourraient m'aider à déterminer si le visiteur consulte une page pour la première fois?

Répondre

3

La mesure la plus fiable est le filtrage d'adresse IP car le spammeur peut contourner toute autre méthode en écrivant son propre programme pour demander la page. Cela affectera vos clients derrière le NAT, mais pour le filtrage du spam, cela fonctionne plutôt bien.

+0

Un spammeur pourrait également usurper l'adresse IP rendant le filtrage IP inutile. Vous perdriez aussi des gens qui sont derrière un nat. – JoshBerke

+0

C'est beaucoup moins probable et est de loin plus difficile. C'est toujours le problème. Vous devez sacrifier :) Tout mécanisme de filtrage de spam que j'ai vu a des faux positifs. –

+0

C'est un forum pour une petite communauté de personnes qui partagent des intérêts similaires. Je ne prévois pas de rencontrer des hordes d'utilisateurs qui verront les mêmes messages derrière le même NAT, donc je pense que l'option IP fonctionnera le mieux, au moins pour l'instant. Merci à tous pour votre contribution. –

0

ASP.Net dispose d'une fonctionnalité intégrée appelée Personalization qui peut être utilisée pour détecter et mémoriser les utilisateurs anonymes à côté des utilisateurs "enregistrés" normaux.

+0

Je pense que cela dépend d'un cookie, donc je ne pense pas que ce soit bon pour le scénario – eglasius

+0

Vous pouvez le configurer de différentes façons. –

0

Pour les utilisateurs anonymes, utilisez l'adresse IP. Cela donnera des faux positifs, spécialement pour certains fournisseurs d'accès Internet, mais cela ressemble à un compromis décent pour votre scénario. Je voudrais également le rendre simple pour les utilisateurs d'être identifiés, ID ouvert est un excellent moyen de le faire.

+0

Je pensais en fait à faire une option pour les utilisateurs. Les personnes qui se sont identifiées verront leur message marqué comme «vérifié», ce qui permettra aux autres utilisateurs un plus grand niveau de discrimination lors du choix des messages à prendre au sérieux. Merci pour la recommandation d'utiliser Open ID. –

+0

@Tom, heureux d'aider, les votes sont les bienvenus :) – eglasius

Questions connexes